如果您不小心覆盖了git提交消息,有没有办法恢复它?
在:
foo@bar:/tmp/git-test$ git log
commit ad7edbdf70ca1d7f0069b50726646e235f42a02f
Author: Steve Jobs <steve@apple.com>
Date: Mon Mar 31 11:46:24 2014 -0600
Imporant stuff
1. thing a
2. thing b
commit aa502ffbd7350b37e040f59f394c0daf97a11648
Author: Steve Jobs <steve@apple.com>
Date: Mon Mar 31 11:45:41 2014 -0600
First commit
意外地使用第一个
中的消息覆盖提交 git commit --amend -c aa502ffbd7350b37e040f59f394c0daf97a11648
请注意,我现在有2个提交相同的消息
foo@bar:/tmp/git-test$ git log
commit ad7edbdf70ca1d7f0069b50726646e235f42a02f
Author: Steve Jobs <steve@apple.com>
Date: Mon Mar 31 11:46:24 2014 -0600
First commit
commit aa502ffbd7350b37e040f59f394c0daf97a11648
Author: Steve Jobs <steve@apple.com>
Date: Mon Mar 31 11:45:41 2014 -0600
First commit
答案 0 :(得分:1)
您可以在git日志中找到旧的git消息。
grep -r -i "Important Stuff" .git/*
.git/logs/HEAD:aa502ffbd7350b37e040f59f394c0daf97a11648 ad7edbdf70ca1d7f0069b50726646e235f42a02f Steve Jobs <steve@apple.com> 1396287984 -0600 commit: Imporant stuff
.git/logs/refs/heads/master:aa502ffbd7350b37e040f59f394c0daf97a11648 ad7edbdf70ca1d7f0069b50726646e235f42a02f Steve Jobs <steve@apple.com> 1396287984 -0600 commit: Imporant stuff
重命名提交,使用-c选项指向.git / logs / HEAD中的对象
git commit --amend -c ad7edbdf70ca1d7f0069b50726646e235f42a02f
答案 1 :(得分:1)
git reset --soft @{1}
会将您的分支提示设置为修改前的提交。