术语“瓷器”偶尔出现在Git文档中。这是什么意思?
当前回答
瓷器命令是为人类使用而设计的,而不是那些输出容易被计算机解析的命令。Git状态就是一个例子。
其他回答
在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的答案。
“瓷器”通常是制造厕所的材料(有时也是其他固定装置,如脸盆)。这与“管道”(实际的管道和排水管)不同,陶瓷为管道提供了更友好的界面。
Git使用这个术语进行类比,将用户通常不需要直接使用的低级命令(“管道”)与更友好的高级命令(“瓷器”)分开。
瓷是程序和程序套件的可爱名字,依赖于核心git,提供了对核心git的高级访问。
https://git.wiki.kernel.org/index.php/Porcelain
瓷是程序和程序套件的可爱名字,依赖于核心git,提供了对核心git的高级访问。瓷器比“管道”暴露出更多的SCM界面。
——瓷器,Git Wiki
推荐文章
- Visual Studio Code: .git文件夹/文件隐藏
- “node_modules”文件夹应该包含在git存储库中吗
- 编程中的术语“上下文”?
- 为什么git-rebase给了我合并冲突,而我所做的只是压缩提交?
- 当我试图推到原点时,为什么Git告诉我“没有这样的远程‘原点’”?
- 如何从远程分支中挑选?
- 如何查看一个分支中的哪些提交不在另一个分支中?
- 如何取消在github上的拉请求?
- HEAD和master的区别
- GIT克隆在windows中跨本地文件系统回购
- RPC失败;卷度传输已关闭,剩余未完成的读取数据
- 我应该在.gitignore文件中添加Django迁移文件吗?
- 错误:您对以下文件的本地更改将被签出覆盖
- Git rebase—即使所有合并冲突都已解决,仍然会继续报错
- 在Git中,我如何知道我的当前版本是什么?