我在一个分支机构(主)上本地工作。我之前做了一个改变来压制一些我认为有用的提交。我继续做了一些提交,直到我需要执行另一次rebase。当我打电话给git rebase -i HEAD~3
时,我得到了错误:
交互式rebase已经开始
暗示我从来没有正确完成旧的rebase。
现在我想放弃旧的rebase,而不会丢失自开始以来的任何变化。我打算用
git rebase --abort
但我很确定会删除我所有的本地提交并在rebase之前退回。我能在这做什么?
答案 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