5

我愿意更正我对此的理解,但我不确定为什么会发生这种情况。

使用 git 时,我知道如果我对文件进行更改然后提交它,我会得到一个新的哈希,因为文件已更改。

我的理解git commit --amend是我可以对最后一次提交进行更改。

现在我可以理解,如果我更改提交消息,哈希值就会改变。

但是当我不做任何更改而只是保存并退出编辑器时(我可能已经改变了需要更改的想法)为什么哈希会改变?我所有的文件和一切都是一样的,但我已经保存了它。当我的git log提交时间没有改变时,它只是在日志中出现两次,相同的时间,相同的消息,相同的文件,除了不同的提交哈希。

如果没有进行任何更改,为什么它会更改?

4

1 回答 1

6

Git 哈希是使用许多项目计算的,包括作者姓名/日期、提交名称/日期提交消息、树和父 SHA 等。当您修改提交时,提交名称和日期会更新。(除非您将其他格式选项传递给 ,否则您通常看不到提交名称和日期git log。)因为已更新,提交哈希将在修改提交时更改。

于 2015-09-08T22:49:27.630 回答