我想壁球我的最后2个提交在了一起,所以做了git rebase
,以下列方式:撤消错误而压垮提交在GIT
git rebase -i HEAD~2
但由于一个错字,我实际最终推到起源是:
git rebase -i HEAD-3
现在,在Github Pull Request它显示犯下一些其他不相关的承诺。所以基本上,我想删除不属于我的提交06674f0
,同时在此PR中保留fcea5e0
。
如何解决所造成的简单的拼写错误的烂摊子?
我想壁球我的最后2个提交在了一起,所以做了git rebase
,以下列方式:撤消错误而压垮提交在GIT
git rebase -i HEAD~2
但由于一个错字,我实际最终推到起源是:
git rebase -i HEAD-3
现在,在Github Pull Request它显示犯下一些其他不相关的承诺。所以基本上,我想删除不属于我的提交06674f0
,同时在此PR中保留fcea5e0
。
如何解决所造成的简单的拼写错误的烂摊子?
编辑:检查您引用日志与
git reflog
选择提交以前你的第一个底垫和下面适当数量的替换X:
就撤消前底垫和重做:
git reset --hard [email protected]{x}
git rebase -i HEAD~2
..
git push -f origin master
删除您的拉取请求并发出一个新请求。
两个和git reset --hard [email protected]{x}
没有为我工作。
我想一个脚本来反正做到这一点,所以我做了以下。
BACK_2_SHA=`git reflog show --pretty=format:'%H' -n x | tail -n 1`
git reset --hard $BACK_2_SHA
它可以无需移除现有的拉请求来实现? – CuriousMind 2012-04-21 15:26:34
是的,它可能可以。我只是在想,你可能想在你使用它的时候删除它。 – ralphtheninja 2012-04-21 15:33:08
我试过了,但没有奏效。而不是我想合并的两个提交失去了,现在试图运行'git rebase -i HEAD〜2'从历史的更远处拿起两个提交 – CuriousMind 2012-04-21 15:51:27