对于 git
命令," plumbing"之间存在区别。和"瓷器"命令。如何确定哪些将被分类为管道或瓷器?即什么是允许我区分的边界线?
我不是在询问瓷器或管道命令是什么,而是如何根据命令我可以说出它是哪种类型。
答案 0 :(得分:38)
作为blue112 noted,分界线是模糊的。但是,The very first documentation page有一个明确的列表(和as R.M. notes below,一个主要标准是,或者至少应该是,界面的稳定性 - 一些名义瓷器命令具有--porcelain
1 强制更稳定和/或更机器可读的输出。您可以选择使用它们的列表,或者确定某些命令的级别太高而不是低级别,或者级别太低而不能达到高级别。例如,您可能不同意git apply
是一个管道命令,但Git页面说它是。或者,您可能会认为git fast-import
之类的内容只能在脚本中使用。
下面的列表只是从文档中提取的,描述和其他分类被剥离,只留下“瓷器”与“管道”。 (子分类在字母排序顺序中仍然可见。我没有为每个条目构建链接,因为使用StackOverflow markdown会更加困难 - 这只需要一个简单的< pre> ...< / pre> ;包装。)
git-add git-rebase git-cherry git-am git-reset git-count-objects git-archive git-revert git-difftool git-bisect git-rm git-fsck git-branch git-shortlog git-get-tar-commit-id git-bundle git-show git-help git-checkout git-stash git-instaweb git-cherry-pick git-status git-merge-tree git-citool git-submodule git-rerere git-clean git-tag git-rev-parse git-clone git-worktree git-show-branch git-commit gitk git-verify-commit git-describe git-config git-verify-tag git-diff git-fast-export git-whatchanged git-fetch git-fast-import gitweb git-format-patch git-filter-branch git-archimport git-gc git-mergetool git-cvsexportcommit git-grep git-pack-refs git-cvsimport git-gui git-prune git-cvsserver git-init git-reflog git-imap-send git-log git-relink git-p4 git-merge git-remote git-quiltimport git-mv git-repack git-request-pull git-notes git-replace git-send-email git-pull git-annotate git-svn git-push git-blame
git-apply git-for-each-ref git-receive-pack git-checkout-index git-ls-files git-shell git-commit-tree git-ls-remote git-upload-archive git-hash-object git-ls-tree git-upload-pack git-index-pack git-merge-base git-check-attr git-merge-file git-name-rev git-check-ignore git-merge-index git-pack-redundant git-check-mailmap git-mktag git-rev-list git-check-ref-format git-mktree git-show-index git-column git-pack-objects git-show-ref git-credential git-prune-packed git-unpack-file git-credential-cache git-read-tree git-var git-credential-store git-symbolic-ref git-verify-pack git-fmt-merge-msg git-unpack-objects git-daemon git-interpret-trailers git-update-index git-fetch-pack git-mailinfo git-update-ref git-http-backend git-mailsplit git-write-tree git-send-pack git-merge-one-file git-cat-file git-update-server-info git-patch-id git-diff-files git-http-fetch git-sh-i18n git-diff-index git-http-push git-sh-setup git-diff-tree git-parse-remote git-stripspace
1 调用此--plumbing
似乎更合乎逻辑,但作为VonC notes in this answer to a related question,可以将其视为请求:“我正在实施瓷器,所以请给出我的管道式输出。“这个论点中的缺陷是你可能正在实施复杂的管道,并希望使用简单的管道来做到这一点:现在看不到瓷器,然而,你的复杂管道将--porcelain
传递给一些简单的管道。
答案 1 :(得分:5)
我认为命令之间没有直线。
您每天使用的命令都是瓷器(考虑status
,diff
,commit
...),较少使用的命令,它们提供较少的格式化输出是管道(考虑diff-index
,hash-object
或send-pack
)。
您可以使用git help -a
获得完整的git命令列表。在这里告诉哪个命令更多地属于瓷器或管道工程,这很容易。
查看git send-pack
手册,您可以看到以下行
通常你会想要使用git push,它是这个命令的更高级别的包装器。
这就是告诉你它更像是一个管道命令。
答案 2 :(得分:2)
One idea is to visit the Git documentation page and see if the command you want to use is listed under High-level commands (app.get('/sign-in', (req, res) => {
res.sendFile(path.resolve( PATH ));
} );
) or Low-level commands (porcelain
)
答案 3 :(得分:1)
列出管道命令(以及其他命令,在其各自的部分中)的实际命令为:
git help -av
这在Git 2.20(2018年第四季度)中有所变化,考虑到“ git help -a
”和“ git help -av
”给出了不同的信息,通常,“详细”版本对新用户更友好。
默认情况下,“ git help -a
”现在使用更详细的输出(如果使用“ --no-verbose
”,您可以返回原始状态)。
请参见commit 26c7d06的Nguyễn Thái Ngọc Duy (pclouds
)(2018年9月29日)。
(由Junio C Hamano -- gitster
--在commit 54e564e中合并,2018年10月19日)
help -a
:改进--verbose
并将其设置为默认值当您键入“
git help
”(或仅键入“git
”)时,会看到一个包含常用命令及其简短说明的列表,建议您使用“git help -a
”或“git help -g
”以获取更多详细信息。“
git help -av
”将更加友好并且与“git help
”中显示的内容内联,因为它还显示了带有说明的命令列表,并且对命令进行了正确的分组。“
help -av
”并未显示“help -a
”中显示的所有内容。
为此,请在“help -av
”中添加外部命令部分。在此同时,还要添加一个别名部分(直到现在别名没有UI,只有“git config
”)。
一个简单的git help -a
(使用Git 2.20+)现在将返回:
vonc@VONC D:\git\git
> git help -a
Main Porcelain Commands
add Add file contents to the index
am Apply a series of patches from a mailbox
archive Create an archive of files from a named tree
bisect Use binary search to find the commit that introduced a bug
...