问题
Git中的commit-ish和tree-ish的具体示例是什么?
堆栈溢出问题“ 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
和
$ 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
定义
Git文档定义了什么是“ commit-ish”和“ tree-ish”:
<tree>指示树对象名称。
<commit>指示提交对象名称。
<tree-ish>指示树,提交或标记对象名称。带有
<tree-ish>参数的命令最终希望对一个<tree>对象进行操作,但是会自动取消引用<commit>和<tag>指向的对象<tree>。<commit-ish>指示提交或标记对象名称。带有
<commit-ish>参数的命令最终希望对一个<commit>对象进行操作,但是会自动取消引用<tag>指向的对象<commit>。
该文档不够清楚
即使上面的文档定义了“ commit-ish”和“ tree-ish”是什么,我仍然觉得它过于模糊和不清楚。
“ commit-ish”和“ tree-ish”的具体示例是什么,它们之间有何不同?

stash@{0}。我想知道适合所有这些的地方。还有其他东西,例如隐藏(my-thing@{0})吗?藏起来只是一个<refname>吗?