我在本地的一个分支(master)工作。我之前做了一个变基来压缩一些我认为有效的提交。我继续进行多次提交,直到需要执行另一次变基。当我打电话时,git rebase -i HEAD~3我收到错误:
交互式变基已经开始
这表明我从未正确完成旧的 rebase。
现在我想中止旧的变基,而不丢失自开始以来的任何更改。我本来打算用
git rebase --abort
Run Code Online (Sandbox Code Playgroud)
但我很确定这将删除我所有的本地提交并在变基之前放回原处。我在这里能做什么?
提交它们。中止变基。从 中提取提交git reflog。
git add .
git commit -m "Rebased changes"
git rebase --abort
git cherry-pick HEAD@{1}
Run Code Online (Sandbox Code Playgroud)
用它做你想做的事。如果你的git reflog分支过期了(我无法想象在正常的日常操作中会发生这种情况),请切断一个新分支,然后中止变基:
git add .
git commit -m "Rebase changes"
git checkout -b rebased-master
git rebase --abort
Run Code Online (Sandbox Code Playgroud)