中止(意外和旧/悬空)变形但保留所有变化

时间:2012-08-06 19:10:20

标签: git git-rebase

我在一个分支机构(主)上本地工作。我之前做了一个改变来压制一些我认为有用的提交。我继续做了一些提交,直到我需要执行另一次rebase。当我打电话给git rebase -i HEAD~3时,我得到了错误:

  

交互式rebase已经开始

暗示我从来没有正确完成旧的rebase。

现在我想放弃旧的rebase,而不会丢失自开始以来的任何变化。我打算用

git rebase --abort

但我很确定会删除我所有的本地提交并在rebase之前退回。我能在这做什么?

1 个答案:

答案 0 :(得分:4)

提交他们。中止变革。从git reflog拉出提交。

git add .
git commit -m "Rebased changes"
git rebase --abort
git cherry-pick HEAD@{1}

用它做你想做的事。如果您的git reflog已过期(我无法想象在正常的日常操作中会发生这种情况),请剪切新分支然后中止该变换:

git add .
git commit -m "Rebase changes"
git checkout -b rebased-master
git rebase --abort
相关问题