尝试这个:
mkdir a
cd a
git init
touch f1
git add f1
git commit -m "Commit 1"
git log
注意 SHA。然后做
git commit --amend -m "Commit 1"
git log
请注意,SHA 发生了变化,尽管我所看到的关于提交本身没有任何变化(甚至没有提交日期。)
这两个生成新 SHA 的提交有什么不同?
尝试这个:
mkdir a
cd a
git init
touch f1
git add f1
git commit -m "Commit 1"
git log
注意 SHA。然后做
git commit --amend -m "Commit 1"
git log
请注意,SHA 发生了变化,尽管我所看到的关于提交本身没有任何变化(甚至没有提交日期。)
这两个生成新 SHA 的提交有什么不同?
我在本地浏览了您的示例。如果您使用git cat-file
检查提交对象...
第一次提交后:
$ git cat-file -p f9afca7508e2d97ca4babfb897fa5acefe67af54
tree 56e3dd6f60494c9bbe56ea178b9a86c91d3139c6
author Lars Kellogg-Stedman <lars@example.com> 1376499716 -0400
committer Lars Kellogg-Stedman <lars@example.com> 1376499716 -0400
Commit 1
修改后:
$ git cat-file -p 976778e7f58c4b2f89b4f652e89c420e1266d297
tree 56e3dd6f60494c9bbe56ea178b9a86c91d3139c6
author Lars Kellogg-Stedman <lars@example.com> 1376499716 -0400
committer Lars Kellogg-Stedman <lars@example.com> 1376499733 -0400
Commit 1
请注意,这两个提交对于“提交者”元数据具有不同的时间戳。由于数据不同,commit ID 也不同。如果更改数据,则更改对象的 SHA1。