提交时,git中的父树哈希变化了吗?

时间:2013-01-24 00:04:59

标签: git

我执行了第一次提交,看看树的哈希是什么,我运行了命令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。我没有正确理解父哈希的使用吗?

1 个答案:

答案 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匹配。