我试图改变一位同事的工作.
首先,我得到了大量的冲突,其中<<<<<头部接缝包含新代码.
然后过了一会儿我得到以下错误:
fatal: update_ref failed for ref 'refs/heads/dev_504': cannot lock ref 'refs/heads/dev_504': ref refs/heads/dev_504 is at XXXXXXX but expected XXXXXXXX Could not move back to refs/heads/dev_504
然后,如果我尝试继续,我得到以下错误:
fatal: cannot resume: .git/rebase-apply/final-commit does not exist.
我怎样才能解决这个问题,以便rebase不会出错?
您可以运行git rebase --abort
以完全撤消rebase.Git将返回到你的分支状态,就像调用git rebase之前一样.
您可以运行git rebase --skip
以完全跳过提交.这意味着将不包括由有问题的提交引入的任何更改.您很少选择此选项.
你可以修复冲突.
如果不这样做,您应该重新创建分支,或者您可以删除包含rebase状态的.git/rebase-merge目录.
显然,你想要重新定义的分支也在你分支的时候,可能是清理历史记录或在另一个分支上重新定位.如果是这样,您需要:
中止,当前的混乱:git rebase --abort
是最新的: git fetch
现在有趣的部分:
git rebase --onto BUDDY_BRANCH YOUR_BRANCH~ YOUR_BRANCH
例如,你分支你的本地主人(结账/主人),一个新的分支test_branch(你现在想用当前的原点/主人更新)
git rebase --onto master test_branch~ test_branch
这样做的简单来说,它需要你的分支初始父提交,在当前主服务器和基于它的rebase中找到它.