我执行了第一次提交,看看树的哈希是什么,我运行了命令git cat-file -P HEAD
,它给了我以下输出;
tree ac9b570150cca9243e1546f6c1b393f851dd7559
author pm 1358978176 +1300
committer pm 1358978176 +1300
然后我继续add
一个新目录,然后是commit
。然后我运行了命令git cat-file -p HEAD
,它有我以下输出;
tree 297f145b042bf11f16ac39fa109df151a8d56ae3
parent dc2683fdf1bf9d5db5f1dc6fbb62576d10d57ae7
author pm 1358985313 +1300
committer pm 1358985313 +1300
我认为父哈希是前面提交的哈希,即ac9b570150cca9243e1546f6c1b393f851dd7559
。我没有正确理解父哈希的使用吗?
答案 0 :(得分:2)
ac9b570150cca9243e1546f6c1b393f851dd7559
是前一个树的哈希,而不是之前的提交。您不会在此处显示初始提交ID,但git log
会向您显示。
例如,给定:
$ git log
commit be2ddc1cdc0cbe0dad791712806b5c155fa357fc
Author: Lars Kellogg-Stedman <lars@oddbit.com>
Date: Wed Jan 23 19:13:27 2013 -0500
second commit
commit 0e25b7e892bc6e637704909b3d66612807c8edc6
Author: Lars Kellogg-Stedman <lars@oddbit.com>
Date: Wed Jan 23 19:13:03 2013 -0500
initial commit
我们可以运行git cat-file -p HEAD
:
$ git cat-file -p HEAD
tree cdbd58dcba3cf89422f444a310979f6b40dde1ad
parent 0e25b7e892bc6e637704909b3d66612807c8edc6
author Lars Kellogg-Stedman <lars@oddbit.com> 1358986407 -0500
committer Lars Kellogg-Stedman <lars@oddbit.com> 1358986407 -0500
second commit
在此输出中,tree
是当前树的哈希值,parent
与先前提交的id匹配。