ツリーは、歴史の中で、特定のポイントに関連付けられていないファイルやディレクトリの階層的なコレクションです。たとえば、ファイルを作成し、後でそのファイルを削除した場合(他のコミットは行われません)、元のツリーと同じになります。
Aはコミットプロジェクトの歴史の中でのポイントです。コミットはツリーを指定しますが、作成者/コミッターと時間、コミットメッセージ(作成者が変更内容を説明する)、最も重要なのはリポジトリの以前の状態であるゼロ以上の親など、他の情報も含みます。(最初のコミットの親はゼロです。その後のほとんどのコミットには、線形開発中に1つの親があり、マージすると複数になります。)
git cat-file -p
タイプに関係なく、特定のハッシュの内容を出力するコマンドでこれがどのように機能するかを理解できます。たとえば、HEADコミットを確認するには、次のコマンドを実行します。
$ git cat-file -p HEAD
tree 81ca1cb660ea79131336944df28b13b711d93557
parent 92b6b8fe9956866ace5397e060e7cc8ee1c76233
parent 7ea2575ed96d150ee19f70edea4bd42c7c2f0b83
author Mislav MarohniÄ <mislav.marohnic@gmail.com> 1436468108 -0700
committer Mislav MarohniÄ <mislav.marohnic@gmail.com> 1436468108 -0700
Merge pull request #951 from github/global-args
Avoid depending on a hardcoded list of git global flags
そのコミット内のツリーを表示するには、ツリーにすることができcat-file -p
ます。
$ git cat-file -p 81ca1cb660ea79131336944df28b13b711d93557
100644 blob 730f77a3be502cfe6769c1305c0b59c22274caf5 .gitignore
100644 blob bcbd000f6b9ad5b0510f804ac4a3b19306b39c03 .travis.yml
100644 blob da71aa1fa3c3ae47b2fe5e6245ce2eea1586e278 CONTRIBUTING.md
...
同様に、親を見ると、それらもコミットであることがわかります。rev
is などのコミット内のツリーの略記rev^{tree}
。したがって、前のコマンドが記述されている可能性がありますgit cat-file -p HEAD^{tree}
。はのrev^
親を表すことに注意してくださいrev
。複数の親がある場合は、rev^1
、rev^2
、などの詳しい情報はで利用可能ですGitのREV-解析のmanページ。
commit has
3番目の段落の冒頭で何を意味しますか?