質問
Gitでのコミットっぽい、ツリーっぽい具体的な例は何ですか?
Stack Overflowの質問「gitでtree-ishはどういう意味ですか?」特にツリーっぽいものを扱っていますが、両方についてもっと理解したいと思います。
バックグラウンド
ドキュメントでの使用
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>
。
ドキュメントは十分に明確ではありません
上記のドキュメントは「コミットっぽい」と「ツリーっぽい」とは何かを定義していますが、それでもあいまいで不明確であることがわかります。
「コミットっぽい」「ツリーっぽい」の具体例は何ですか?
stash@{0}
。それがこのすべてのどこに当てはまるか知りたいのですが。スタッシュ(my-thing@{0}
)などの他に何かありますか?隠し場所は単なる<refname>
ですか?