提交后,我的 git 日志
中有以下内容:
commit 86270b43fe954e78733f1a8f0c4378b954ad9de4
Author: abc <<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="62030001220300014c010d0f" rel="noreferrer noopener nofollow">[email protected]</a>>
Date: Sat Aug 31 12:04:32 2013 -0700
Adding file1 and file2
那我就做
abc@abc-ubuntu:~/gittest$ git commit --amend
但是我保存了编辑器缓冲区而不修改任何内容
现在再次执行git log
,我明白了
commit 632c8ddff3fd023e947e76350e0678ba2f04706d
Author: abc <<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="10717273507172733e737f7d" rel="noreferrer noopener nofollow">[email protected]</a>>
Date: Sat Aug 31 12:04:32 2013 -0700
Adding file1 and file2
请注意,尽管我在 git commit --amend
期间没有更改任何内容,但两次提交的 sha1sum 是不同的
最佳答案
你确实改变了一些东西:你改变了提交时间。您可以通过
看到这一点git show --format=fuller 86270b43fe954e78733f1a8f0c4378b954ad9de4
git show --format=fuller 632c8ddff3fd023e947e76350e0678ba2f04706d
看看两个CommitDate,它们不匹配。
正如 mvp 的答案所暗示的,如果您确实设法复制提交日期/时间,您将获得相同的 sha1。您可以通过设置GIT_COMMITTER_DATE
环境变量将提交时间覆盖为您想要的任何值,包括原始提交中记录的确切提交时间:
GIT_COMMITTER_DATE=$(git log -1 --format=%cd) git commit --amend
现在,如果您不更改提交消息,您应该得到完全相同的提交。但除非您有理由不记录您重新提交的事实,否则您应该坚持使用默认值。
关于git - 即使我不修改任何内容,提交 sha1sum 也会发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18551857/