术语“瓷器”偶尔出现在Git文档中。这是什么意思?
当前回答
在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”。即你把所有的管道作为真正的程序,而不是试图链接到单独的例程,你会脚本它。
如果你不想要,我就不做。 不过把管道和瓷器分开还是说得通的。
其他回答
Greg Hewgill的答案是完全正确的。请注意,Git还有其他可供选择的陶瓷,包括Easy Git、yap、pyrite和vng。每一个都是为了让Git在社区的某些部分更容易学习/使用。所有这些项目的链接都在Easy Git页面上:http://people.gnome.org/~newren/eg/。
在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的高级访问。
https://git.wiki.kernel.org/index.php/Porcelain
更重要的是,术语“瓷器”适用于高级命令,输出:
意味着人类可以读懂 不是用来解析的 易受变化/演变的影响
这是关键:如果您编写脚本,您应该尽可能使用具有稳定输出的管道命令。而不是瓷器般的命令。
然而,你可以使用一个瓷器命令的输出,它在脚本中有一个——瓷器选项(见下文),比如:
git status --porcelain
git push --porcelain
git blame --porcelain
尽管git包含自己的瓷器层,但其低级命令足以支持替代瓷器的开发。 这些低级命令的接口(输入、输出、选项集和语义)要比瓷级命令稳定得多,因为这些命令主要用于脚本使用。 另一方面,为了改善终端用户体验,瓷器命令的界面可能会发生变化。
请参阅“如何以编程方式确定是否存在未提交的更改?”作为使用管道命令而不是瓷器命令的示例。
注意:一个porcelain命令可以有一个——porcelain选项。 例如:git status——porcelain,它指定要解析的输出。
--porcelain
为脚本提供易于解析的输出格式。这类似于短的输出,但是无论用户配置如何,在git版本之间都保持稳定。详情见下文。
以上提到的线程细节:
This is my fault, to some degree. The "short-status" form is meant for human eyeballs, and was designed by Junio. Some people wanted a scriptable status output, too, so I slapped a "--porcelain" on the same format that turns off configurable features like relative pathnames and colorizing, and makes an implicit promise that we won't make further changes to the format. The idea was to prevent people from scripting around --short, because it was never intended to be stable. So yeah, while --porcelain by itself is stable and scriptable, it is perhaps not the most friendly to parsers. The "-z --porcelain" format is much more so, and I would recommend it to anyone scripting around "git status"
这反映了git用户在脚本中使用瓷器命令的需求! 但只有稳定的输出(瓷器)
正如william-berg所评论的,git push也一样!
--porcelain
产生机器可读的输出。 每个ref的输出状态行将以制表符分隔,并发送到stdout而不是stderr。 裁判的完整的象征性名字将被给出。
正如John Glassmyer在评论中提出的:
也许——porcelain在这里的意思是“生产适合瓷脚本消费的产品”。
这可以从第一个“——瓷器选项”的引入案例中得到支持 (在git状态——瓷器之前,提交6f15787, 2009年9月,git 1.7.0, 在git推送之前——瓷器,提交1965ff7, 2009年6月,git 1.6.4):
怪——瓷器:
-p
--porcelain
以适合机器使用的格式显示。
提交b5c698d, 2006年10月,git 1.4.4
新选项使命令的本机输出格式发出更容易由Porcelain处理的输出。
瓷是程序和程序套件的可爱名字,依赖于核心git,提供了对核心git的高级访问。瓷器比“管道”暴露出更多的SCM界面。
——瓷器,Git Wiki
推荐文章
- Visual Studio Code无法检测已安装的Git
- 强制LF eol在git的回购和工作副本
- Git:在裸库中更改活动分支的正确方法?
- 删除git中的分支是否会将其从历史记录中删除?
- JavaBean和POJO之间的区别是什么?
- 防止在GitHub上推送到master ?
- 根据Git,谁是“我们”,谁是“他们”?
- git如何合并后樱桃采摘工作?
- Git搜索单个文件历史记录中的字符串
- Git命令显示所有(轻量级)标签创建日期
- Gitignore并没有忽视文件夹
- 什么时候用。git/info/exclude代替。gitignore来排除文件?
- 如何告诉git忽略个别行,即gitignore为特定行代码
- “git diff——耐心”是什么意思?
- 我如何在GitHub中为其他人的代码做出贡献?