术语“瓷器”偶尔出现在Git文档中。这是什么意思?
当前回答
瓷器命令是为人类使用而设计的,而不是那些输出容易被计算机解析的命令。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”。即你把所有的管道作为真正的程序,而不是试图链接到单独的例程,你会脚本它。
如果你不想要,我就不做。 不过把管道和瓷器分开还是说得通的。
瓷器命令是为人类使用而设计的,而不是那些输出容易被计算机解析的命令。Git状态就是一个例子。
Greg Hewgill的答案是完全正确的。请注意,Git还有其他可供选择的陶瓷,包括Easy Git、yap、pyrite和vng。每一个都是为了让Git在社区的某些部分更容易学习/使用。所有这些项目的链接都在Easy Git页面上:http://people.gnome.org/~newren/eg/。
在git中,瓷器有两种不同的含义。
这两种意义,虽然可以说不是严格意义上的矛盾,但也可能是矛盾的。
A.概念性(管道vs瓷器)
官方Pro Git书:
但是因为Git最初是一个版本控制系统的工具包,而不是一个完全用户友好的VCS,所以它有许多执行低级工作的子命令,并且被设计成以unix风格链接在一起或从脚本调用。这些命令通常被称为Git的“管道”命令,而更友好的命令被称为“瓷器”命令。
B.瓷器/ =瓷器选项
许多git命令都带有用于脚本编写的——porcelain选项。
Git状态文档:
——瓷(= <版本>) 为脚本提供易于解析的输出格式。这类似于短的输出,但是无论用户配置如何,在Git版本之间都保持稳定。详情见下文。
Git diff的文档:
——word-diff(= > <模式) 瓷 使用用于脚本使用的特殊的基于行的格式。
简单的解释
在编写脚本时不应该依赖“瓷器”命令,因为:它们可能会改变;这是给人类的,不是给机器的。 “管道”命令应该用于脚本,因为:它们更稳定/不太可能改变)。
是啊,但那令人困惑的瓷器选择呢?
如果你想:
使用瓷器命令(用于人类,而不是解析)和 可靠地解析它
....然后您可以添加——porcelain选项并将输出用于脚本编写。
示例:我可以使用git status——porcelain并使用输出脚本,没有问题。
(我说这些话是出于对git创造者最大的尊重。很容易批评,特别是在没有指定替代方案的情况下。但对我来说,这些旗帜似乎令人困惑。)
瓷器/管道术语从何而来?
如果英语不是你的第一语言,那么Greg Hewgill可以完美地解释这一点。 更多细节:签出VonC的答案。
推荐文章
- 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中为其他人的代码做出贡献?