我打开了一些纠正我对此的理解,但我不确定为什么会这样。
使用git时,我明白如果我对文件进行更改然后提交它,我会得到一个新的哈希,因为文件已经更改。
我对git commit --amend
的理解是我可以对最后一次提交进行更改。
现在我可以理解,如果我更改了提交消息,则哈希值会发生变化。
但是当我不进行任何更改而只是保存并退出编辑器时(我可能已经改变了我的想法,需要更改)为什么哈希会改变?
我的所有文件和所有内容都是一样的,但我保存了它。当git log
提交的时间没有改变时,它只会在日志中出现两次,具有相同的时间,相同的消息,除了不同的提交散列之外的相同文件。
如果没有进行任何改动,为什么会改变?
答案 0 :(得分:3)
Git哈希是使用多个项目计算的,包括作者姓名/日期,提交名称/日期提交消息,树和父SHA等。修改提交时,提交名称和日期会更新。 (除非将其他格式选项传递给git log
,否则通常不会看到提交名称和日期。)因为已更新,所以提交哈希将在修改提交时更改。