要するに:はい。
このページでは、このsha1合計がどのように形成されるかを見ることができます. 以下で構成されています。
- コミットのソース ツリー (すべてのサブツリーとブロブに展開)
- 親コミット sha1
- 作者情報
- コミッター情報 (そうです、それらは異なります!)
- コミットメッセージ
したがって、すべてのファイルのすべての変更が sha1sum の計算に含まれます。私の知る限り、任意のファイルを変更すると、すべての場合に異なる sha1 サムが得られると信頼できます。
編集:私は自分のコミットの1つから作業を開始しました:
git cat-file commit HEAD
与えます:
tree 563ccb5109fbf0a01d99517ca1dbe15db349592d
parent 3c6f0800708aeaaeaba804273406ddcd0b3175ad
...
今git cat-file -p 563ccb5109fbf0a01d99517ca1dbe15db349592d
:
100644 blob d8fe4fa70f618843e9ab2df67167b49565c71f25 .gitignore
100644 blob dba1ba3a31837debf7a28eceb194e86916b88cbc README
040000 tree 37ad71e959c6dadd0e4b7aff8a0c6e85a0eff789 conf
040000 tree 60eca667ab8b5852ecd2dd2d91d198a3956a8b73 etc
040000 tree 634c4c2ec34aec14142b5991bd3a5126110f2cae sbin
040000 tree 256db03954535d25d5f340603e707207170f199c spec
040000 tree 9e1e156f88b842da471f52d4c135f391319b4991 usr
さらに深く続けることができます: git cat-file -p d8fe4fa70f618843e9ab2df67167b49565c71f25
:
/.project
(これは私の .gitignore ファイルの内容です)またはgit cat-file -p 256db03954535d25d5f340603e707207170f199c
:
100644 blob 591367a913adbeb1c86d674d240fb08ab8ccf78b base.spec
(これは私の「スペック」ディレクトリの内容です)。
ご覧のとおり、すべてのファイルの内容は、ファイルの sha1 sum に再帰的に存在します。次に、ソース ツリーの sha1 サムで、最後にコミットの sha1 サムで。