5

我正在编写一个脚本作为 Git 使用的示例。但是,每次我运行它时,都会产生一组不同的哈希,即使提交消息、作者、日期、父级和内容相同:

rm -rf /tmp/git-teste
git init /tmp/git-teste
cd /tmp/git-teste
echo 'zero' > master.txt
git add .
git commit -am zero --date '2013-05-28 16:40:00' --author 'andre <teste@teste.com>'

哈希不应该一直是一样的吗?我应该改变什么来确保这种情况发生?

4

3 回答 3

6

Git 提交有两个日期:作者日期(您使用 设置commit --date)和提交日期。两者都用于计算 SHA1。可以使用GIT_COMMITTER_DATE环境变量设置提交日期,请参阅git help commit-tree.

于 2013-05-28T20:47:49.577 回答
2

larsmans 关于提交日期不同是正确的。最后一行试试这个:

GIT_AUTHOR_DATE='2013-05-28 16:40:00' GIT_COMMITTER_DATE=$GIT_AUTHOR_DATE git commit -am zero --author 'andre <teste@teste.com>'
于 2013-05-28T20:50:26.480 回答
2

看起来即使您设置了自动设置authorcommitter字段。

请注意,您可以通过手动查看对象树、查找不同的对象并使用git cat-file -p A1234where A1234is the first 5 characters of the hash (或多个字符以保证唯一性)来找出差异

例如,我发现以下内容:

tree 552ae24725bacabda77c585b56b260ccac74c003
author andre <teste@teste.com> 1369784400 -0700
committer Username <username@email.com> 1369773739 -0700

zero
于 2013-05-28T20:52:00.403 回答