撤消git commit修改并保持索引中的更改

时间:2016-06-09 10:36:57

标签: git

我在rebase之后解决了巨大的合并冲突,错误地运行了git commit --amend而不是git commit。 现在git认为先前的提交已完成所有更改。 有没有办法撤消git commit --amend并在合并后获取我所有更改的索引?

2 个答案:

答案 0 :(得分:4)

如果我的说明中写错了,请先复印一份你的回购。

你已经修改了你的提交,所以原来未经修改的提交仍然在树中的某个地方,尽管没有分支点。

您可以使用以下方法之一找回它:

git fsck --lost-found
git reflog

然后您可以重置回此提交。重新设置 soft 只会让您指向该提交并保持文件不变,重置 hard 将擦除所有更改(以及您正在解决的合并冲突):

git reset [--hard|--soft] <your_commit_hash>

答案 1 :(得分:1)

做git revert 如需进一步的帮助,请查看:https://www.atlassian.com/git/tutorials/undoing-changes/git-revert