术语“瓷器”偶尔出现在Git文档中。这是什么意思?
瓷是程序和程序套件的可爱名字,依赖于核心git,提供了对核心git的高级访问。瓷器比“管道”暴露出更多的SCM界面。
——# EYZ0
瓷是程序和程序套件的可爱名字,依赖于核心git,提供了对核心git的高级访问。
https://git.wiki.kernel.org/index.php/Porcelain
瓷器命令是为人类使用而设计的,而不是那些输出容易被计算机解析的命令。git status就是一个例子。
git status
“瓷器”通常是制造厕所的材料(有时也是其他固定装置,如脸盆)。这与“管道”(实际的管道和排水管)不同,陶瓷为管道提供了更友好的界面。
Git使用这个术语进行类比,将用户通常不需要直接使用的低级命令(“管道”)与更友好的高级命令(“瓷器”)分开。
更重要的是,“瓷器”这个词;适用于高层的命令,输出:
这是关键:如果编写脚本,应该尽可能使用< em >管道< / em >命令,输出稳定。而不是瓷器般的命令。
然而,你可以使用瓷器命令的输出,它在脚本中有一个--porcelain选项(见下文),像:
--porcelain
git status --porcelain git push --porcelain git blame --porcelain
尽管git包含了它自己的瓷层,但它的低级命令足以支持替代瓷器的开发。 接口(输入,输出,选项集和语义)到这些低级命令意味着更加稳定比瓷级别的命令,因为这些命令主要用于编写脚本。 另一方面,为了改善最终用户的体验,瓷器命令的界面可能会发生变化
看到“# EYZ0"作为一个使用管道命令而不是瓷器命令的例子。
git status --porcelain
为脚本提供易于解析的输出格式。这类似于短的输出,但是无论用户配置如何,在git版本之间都保持稳定。详情见下文。
以上提到的线程细节:
在某种程度上,这是我的错。 “short-status"是是为人类眼球设计的,由Junio设计。 有些人也想要一个可脚本的状态输出,所以我敲了一个"--porcelain"在相同的格式上,它关闭了可配置的功能,如相对路径名和着色,并做出了一个隐含的承诺,即我们不会对格式进行进一步的更改。 这个想法是为了防止人们围绕--short编写脚本,因为它从来都不是稳定的。 所以,虽然--porcelain本身是稳定的、可编写脚本的,但它对解析器可能不是最友好的。“# EYZ1"format更是如此,我推荐给任何围绕“git status"”编写脚本的人
--short
从评论到william-berg, git push也一样!
git push
产生机器可读的输出。 每个ref的输出状态行将以制表符分隔,并发送到stdout而不是stderr。 将给出ref的完整符号名称。
stdout
stderr
正如约翰Glassmyer提出的在评论中:
也许# EYZ1。
这可以由& --porcelain option"的第一个case来支持;介绍 (git status --porcelain,提交6f15787, 2009年9月,git 1.7.0之前, 在# EYZ1): < / p >
# EYZ1:
-p --porcelain
以适合机器使用的格式显示。
Commit b5c698d, October 2006, git 1.4.4
# EYZ0。
Greg Hewgill的答案是完全正确的。请注意,Git还有其他可供选择的陶瓷,包括Easy Git、yap、pyrite和vng。每一个都是为了让Git在社区的某些部分更容易学习/使用。所有这些项目的链接都在Easy Git页面上:http://people.gnome.org/~newren/eg/。
在git中,“瓷器”一词的创造和使用实际上是由Mike Taht发明的,除此之外,他还输掉了与Linus Torvalds的激烈争论。
http://www.gelato.unsw.edu.au/archives/git/0504/0881.html
事实上,我的一个希望是其他SCM可以使用git管道 但是我真的建议你使用“git”本身,而不是任何“libgit”。例如,你把所有管道作为真正的程序,而不是试图链接到单独的例程,你会脚本它 如果你不想要,我就不做了 尽管如此,将管道与瓷器分开还是有意义的。
事实上,我的一个希望是其他SCM可以使用git管道 但是我真的建议你使用“git”本身,而不是任何“libgit”。例如,你把所有管道作为真正的程序,而不是试图链接到单独的例程,你会脚本它
libgit
如果你想:
....然后您<强> < / >强能添加--porcelain选项,并使用输出脚本。
我可以使用git status --porcelain,并使用输出脚本,没有问题。
(我说这些话是出于对git创造者最大的尊重。很容易批评,特别是在没有指定替代方案的情况下。但对我来说,这些旗帜似乎令人困惑。)
在git中,瓷器有两种不同的含义。
这两种意义,虽然可以说不是严格意义上的矛盾,但也可能是矛盾的。
官方Pro Git书籍:
但是因为Git最初是一个版本控制系统的工具包,而不是一个完全用户友好的VCS,所以它有许多执行低级工作的子命令,并且被设计成以unix风格链接在一起或从脚本调用。这些命令通常被称为Git的“管道”命令,而更友好的命令被称为“瓷器”命令。
=porcelain
许多git命令都带有--porcelain选项,而是用于脚本编写。
# EYZ0 ' # EYZ1:
# EYZ0 为脚本提供易于解析的输出格式。这类似于短的输出,但是无论用户配置如何,在Git版本之间都保持稳定。详情见下文。
# EYZ0
为脚本提供易于解析的输出格式。这类似于短的输出,但是无论用户配置如何,在Git版本之间都保持稳定。详情见下文。
# # EYZ1 EYZ0:
# EYZ0 瓷 使用用于脚本使用的特殊基于行的格式。
瓷
使用用于脚本使用的特殊基于行的格式。