在修改了一个
git rebase -i
之后,我最终把代码变成了我想要的状态。
$ git log
55c602ed1c (HEAD -> main)
6c3fa102c2 (detached-branch)
6ec87486d1
89dd40a86a
f6f4b6edb2
77742d9d69
32b67d2a01
...
提交
55c602ed1c
完全正确。
但是,当我现在调用
git rebase -i 6c3fa102c2
时,我得到了意想不到的编辑器内容:
pick 77742d9d69
pick f6f4b6edb2
pick 89dd40a86a
# Rebase 6c3fa102c2..55c602ed1c onto 6c3fa102c2 (3 commands)
#
# Commands:
# ...
我当然期待看到
pick 6c3fa102c2
pick 55c602ed1c
# Rebase 6c3fa102c2..55c602ed1c onto 6c3fa102c2 (3 commands)
#
# Commands:
# ...
现在我退出编辑器而不保存并得到一条消息和错误:
Auto-merging ...
CONFLICT ...
<more conflicts>
所以我做
git rebase --abort
来摆脱它,这使得分支处于正确的状态,但仍然无法变基。
仅供参考:
% git reflog
55c602ed1c (HEAD -> main) HEAD@{0}: rebase -i (abort): updating HEAD
6c3fa102c2 (detached-branch) HEAD@{1}: rebase -i (start): checkout 6c3fa102c2
55c602ed1c (HEAD -> main) HEAD@{2}: rebase -i (finish): returning to refs/heads/main
55c602ed1c (HEAD -> main) HEAD@{3}: rebase -i (start): checkout HEAD
55c602ed1c (HEAD -> main) HEAD@{4}: rebase -i (abort): updating HEAD
6c3fa102c2 (detached-branch) HEAD@{5}: rebase -i (start): checkout 6c3fa102c2fdbbfe61f3b6d9aaa9e80d259625a8
55c602ed1c (HEAD -> main) HEAD@{6}: rebase -i (abort): updating HEAD
6c3fa102c2 (detached-branch) HEAD@{7}: rebase -i (start): checkout 6c3fa102c2fdbbfe61f3b6d9aaa9e80d259625a8
55c602ed1c (HEAD -> main) HEAD@{8}: rebase -i (finish): returning to refs/heads/main
55c602ed1c (HEAD -> main) HEAD@{9}: rebase -i (start): checkout 55c602ed1c9093c5fb082e07fc38837a2971ec08
55c602ed1c (HEAD -> main) HEAD@{10}: checkout: moving from detached-branch to main
6c3fa102c2 (detached-branch) HEAD@{11}: checkout: moving from main to detached-branch
55c602ed1c (HEAD -> main) HEAD@{12}: rebase -i (abort): updating HEAD
6ec87486d1 HEAD@{13}: rebase -i (start): checkout 6ec87486d1eaaa4e4c691c7e14a37876b18c98de
55c602ed1c (HEAD -> main) HEAD@{14}: commit (merge):
89dd40a86a HEAD@{15}: checkout: moving from detached-branch to main
6c3fa102c2 (detached-branch) HEAD@{16}: checkout: moving from 6c3fa102c2fdbbfe61f3b6d9aaa9e80d259625a8 to detached-branch
如何恢复正常的 rebase 功能?