哪些是管道和瓷器命令? [英] Which are the plumbing and porcelain commands?

查看:81
本文介绍了哪些是管道和瓷器命令?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在Git中,管道和瓷器命令之间有这种区别,但我怎么能说一个命令是管道式的还是瓷器式的?哪一条是边界线,使我认识到另一条边界线?

我不是在问什么瓷器或管道是什么,但是根据命令,我怎么能说如果它是一个管道或一个porcelian之一。

解决方案

作为 blue112指出,分界线是模糊的。 然而,第一个文档页面有一个明确的列表(和作为RM注释,一个主要标准是,或者至少应该是,界面的稳定性 - 一些名义上的瓷器命令具有 - 瓷器 1 强制更稳定和/或更机器可读的输出)。您可以选择使用他们的列表,或者决定某些命令的级别太高而不是低级,或者级别太低而不能达到高级别。例如,您可能不同意 git应用 是一个管道命令,但是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 $ b $ 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



plumbing



 
git-应用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 调用似乎更符合逻辑 - 管道,但作为 VonC在相关问题的回答中注释,可以查看此内容作为要求:我正在实施瓷器,请给我水暖式的输出。这个观点的缺陷是你可能正在实施复杂的管道工程,并且想用简单的管道来做到这一点:现在没有瓷器了,然而,你的复杂管道通过 - 瓷器一些简单的管道。


In Git there is this distinction between plumbing and porcelain commands, but how can I say that a command is a plumbing one or a porcelain one? Which is the border line that makes me recognize the one from the other?

I'm not asking what porcelain or plumbing is, but how, given a command, can I say if it is a plumbing or or a porcelian one.

解决方案

As blue112 noted, the dividing line is fuzzy. The very first documentation page, however, has an explicit list (and as R.M. notes below, one primary criterion is, or at least is supposed to be, stability of interface—for which some nominally-porcelain commands have --porcelain1 to force a more stable and/or more machine-readable output). You can choose to use their list, or decide that some commands are too high level to be low level, or too low level to be high level. For instance you might disagree that git apply is a plumbing command, yet the Git page says it is. Or, you might consider things like git fast-import to be something you would only use inside a script.

The list below is simply extracted from the documentation, with descriptions and additional classifications stripped to leave only "porcelain" vs "plumbing". (Sub-classifications remain visible as inversions in the alphabetic sort order. I did not construct links for each entry, as this would be considerably more difficult with StackOverflow markdown—this just needed a simple <pre>...</pre> wrapper.)

porcelain

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

plumbing

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


1It would seem more logical to call this --plumbing, but as VonC notes in this answer to a related question, one can view this instead as a request: "I am implementing porcelain so please give me plumbing-style output." The flaw in this argument is that you might be implementing complex plumbing, and want to use simple plumbing to do it: now there's no porcelain in sight, and yet, your complex plumbing passes --porcelain to some simple plumbing.

这篇关于哪些是管道和瓷器命令?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆