答案 0 :(得分:1)
目前还不足以确定,但可能是因为您在不同时间提交了提交,或者对作者和/或提交者名称进行了轻微更改,和/或使用了不同的提交消息。
如果所有文件都相同,树哈希应该是相同的。但是, commit 哈希是提交内容的SHA-1,提交内容如下所示:
tree 2d6f17582c301f3c19f64afbe70b629fcc68505b
parent 3dc5ce0a5686ede82b7ee20c895372f61a74f839
author Junio C Hamano <gitster@pobox.com> 1433188076 -0700
committer Junio C Hamano <gitster@pobox.com> 1433188076 -0700
Sixth batch for 2.5 cycle
Signed-off-by: Junio C Hamano <gitster@pobox.com>
(这是git的当前主分支,截至我运行时git fetch
)。请注意作者和提交者时间戳。
答案 1 :(得分:0)
根据this gist,使用以下所有信息计算提交SHA:
在您的情况下,提交时间可能不同,这将导致不同的提交ID。
要查看用于计算提交哈希的确切信息,您可以使用以下命令(将HEAD替换为您要查看数据的任何提交):
(printf "commit %s\0" $(git cat-file commit HEAD | wc -c); git cat-file commit HEAD)
您可以通过将上一个命令的结果传递给sha1sum来验证这一点。您应该获取用于代替HEAD
的提交的完整ID。
要确切了解这两个提交之间的不同之处,您可以运行以下命令:
diff <(git cat-file commit 3fbf300) <(git cat-file commit 5bc715f)
如果树具有不同的ID,则可以运行git diff 3fbf300 5bc715f
以准确找出每个提交中的文件之间的差异。
答案 2 :(得分:0)
尝试运行git cat-file commit <branch/commit/etc>
。这是通过SHA1运行以生成提交ID(加上指示数据长度的标头)。
有关如何构造提交ID的详细信息,请参阅https://gist.github.com/masak/2415865。