撤消在GIT中压缩提交时发生的错误

时间:2012-04-21 15:08:54

标签: git github

我想将我的最后两次提交压缩成一个,所以git rebase也是如此:

git rebase -i HEAD~2

但是由于输入错误,我实际上最终推进原点是:

git rebase -i HEAD-3

现在,在Github Pull Request中,它显示了一些其他无关提交的提交。基本上,我想删除不属于我的提交06674f0,同时将fcea5e0保留在此PR中。

如何解决简单拼写造成的混乱?

2 个答案:

答案 0 :(得分:29)

编辑:使用

检查您的reflog
git reflog

选择第一个rebase之前的提交,并将x替换为下面的适当数字:

只需撤消上一个rebase并重做它:

git reset --hard HEAD@{x}
git rebase -i HEAD~2
..
git push -f origin master

删除您的拉取请求并发出新请求。

答案 1 :(得分:0)

git reset --hard HEAD{x}git reset --hard HEAD@{x}都不适合我。

我想要一个脚本来做到这一点,所以我做了以下。

BACK_2_SHA=`git reflog show --pretty=format:'%H' -n x | tail -n 1`
git reset --hard $BACK_2_SHA