git commit --amend - 在未进行任何更改时更改提交哈希

时间:2015-09-08 22:36:08

标签: git hash commit amend

我打开了一些纠正我对此的理解,但我不确定为什么会这样。

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

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

现在我可以理解,如果我更改了提交消息,则哈希值会发生变化。

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

如果没有进行任何改动,为什么会改变?

1 个答案:

答案 0 :(得分:3)

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