Git中commit-ish和tree-ish的具体示例是什么?
Stack Overflow问题"git中树是什么意思?" 特别是涉及树,但我想更多地了解这两者.
Git文档对"commit-ish"和"tree-ish"进行了多次引用.例如,如果您正在检查Git源代码:
$ git grep --files-with-matches --extended-regexp "commit(-)*ish"
config.txt
git-describe.txt
git-fast-import.txt
git-name-rev.txt
git-push.txt
git-rebase.txt
git-rev-parse.txt
git.txt
gitcli.txt
glossary-content.txt
howto/revert-branch-rebase.txt
revisions.txt
Run Code Online (Sandbox Code Playgroud)
和
$ git grep --files-with-matches --extended-regexp "tree(-)*ish" | \
$ grep --invert-match RelNotes
diff-format.txt
diff-generate-patch.txt
git-archive.txt
git-cat-file.txt
git-checkout.txt
git-diff-index.txt
git-diff-tree.txt
git-ls-files.txt
git-ls-tree.txt
git-merge-tree.txt
git-read-tree.txt
git-reset.txt
git-svn.txt
git.txt
gitcli.txt
gittutorial-2.txt
glossary-content.txt
revisions.txt
Run Code Online (Sandbox Code Playgroud)
Git文档定义了"commit-ish"和"tree-ish"是什么:
Run Code Online (Sandbox Code Playgroud)<tree>表示树对象名称.
Run Code Online (Sandbox Code Playgroud)<commit>表示提交对象名称.
Run Code Online (Sandbox Code Playgroud)<tree-ish>表示树,提交或标记对象名称.采用一个的命令
<tree-ish>参数最终想要一个上操作<tree>对象,但自动取消引用<commit>和<tag> …
我想比较我已经与原始/上游存储库分叉的存储库的本地克隆,以查看是否已经进行了进一步的提交,要求我进行拉/合并.我想从命令行执行此操作.
我用这个命令将原始存储库添加到我的遥控器列表中:
git remote add upstream <original repo URL>
Run Code Online (Sandbox Code Playgroud)
这在Github自己的关于分支分支主题的页面中有所概述.
然而,当我运行git diff upstream 或 git diff upstream/master 作为这里建议或git diff master upstream/master 作为建议在这里,我得到这样的:
fatal: ambiguous argument 'upstream': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
Run Code Online (Sandbox Code Playgroud)
该命令git diff origin/master不会返回错误(或任何事情).我错过了什么吗?