0

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

4

1 回答 1

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

于 2013-01-24T00:12:04.353 回答