术语“瓷器”偶尔出现在Git文档中。这是什么意思?


当前回答

瓷是程序和程序套件的可爱名字,依赖于核心git,提供了对核心git的高级访问。

https://git.wiki.kernel.org/index.php/Porcelain

其他回答

在git中,“瓷器”一词的创造和使用实际上是由Mike Taht发明的,除此之外,他还输掉了与Linus Torvalds的激烈争论。

https://web.archive.org/web/20190427113112/http://www.gelato.unsw.edu.au/archives/git/0504/0881.html

事实上,我的一个希望是其他SCM可以使用git管道。 但是我真的建议你使用“git”本身,而不是任何“libgit”。即你把所有的管道作为真正的程序,而不是试图链接到单独的例程,你会脚本它。

如果你不想要,我就不做。 不过把管道和瓷器分开还是说得通的。

瓷是程序和程序套件的可爱名字,依赖于核心git,提供了对核心git的高级访问。瓷器比“管道”暴露出更多的SCM界面。

——瓷器,Git Wiki

简单的解释

在编写脚本时不应该依赖“瓷器”命令,因为:它们可能会改变;这是给人类的,不是给机器的。 “管道”命令应该用于脚本,因为:它们更稳定/不太可能改变)。

是啊,但那令人困惑的瓷器选择呢?

如果你想:

使用瓷器命令(用于人类,而不是解析)和 可靠地解析它

....然后您可以添加——porcelain选项并将输出用于脚本编写。

示例:我可以使用git status——porcelain并使用输出脚本,没有问题。

(我说这些话是出于对git创造者最大的尊重。很容易批评,特别是在没有指定替代方案的情况下。但对我来说,这些旗帜似乎令人困惑。)

瓷器/管道术语从何而来?

如果英语不是你的第一语言,那么Greg Hewgill可以完美地解释这一点。 更多细节:签出VonC的答案。

瓷是程序和程序套件的可爱名字,依赖于核心git,提供了对核心git的高级访问。

https://git.wiki.kernel.org/index.php/Porcelain

Greg Hewgill的答案是完全正确的。请注意,Git还有其他可供选择的陶瓷,包括Easy Git、yap、pyrite和vng。每一个都是为了让Git在社区的某些部分更容易学习/使用。所有这些项目的链接都在Easy Git页面上:http://people.gnome.org/~newren/eg/。