我试图改变同事的工作。
首先,我遇到了大量的冲突,其中<<<<<头部接缝包含新代码。
过了一会儿,我得到以下错误:
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不会出错?
答案 0 :(得分:12)
您可以运行git rebase --abort
来完全撤消rebase。 Git会让你回到你的分支状态,就像调用git rebase之前一样。
您可以运行git rebase --skip
来完全跳过提交。这意味着将不包括由有问题的提交引入的任何更改。您很少选择此选项。
您可以解决冲突。
如果失败,您应该重新创建分支,或者您可以删除包含rebase状态的.git / rebase-merge目录。
答案 1 :(得分:7)
显然,您想要重新定义的分支也在您分支的时间之间进行了重新定义,可能是清理历史记录或在另一个分支上重新定位。如果是这样,您需要:
git rebase --abort
git fetch
现在有趣的部分:
git rebase --onto BUDDY_BRANCH YOUR_BRANCH~ YOUR_BRANCH
e.g。 您分支本地主(签出原始/主人),新分支 test_branch (您现在想用当前来源/主人更新)
git rebase --onto master test_branch~ test_branch
这样做的简单来说,就是你的分支初始父提交,在当前的主设备和基于它的rebase中找到它。
答案 2 :(得分:-2)
确保您的更改和同事的更改已得到承诺。
如果您希望同事的更改持续存在,您可以这样做,
git rebase<你的分支> < another_branch>
其他
git rebase< another_branch> < your_branch>
答案 3 :(得分:-2)
当您使用另一个分支更新本地分支时,您必须通过在修改和他们的修改之间进行选择来解决冲突。 解决冲突后,您可以通过编写此git命令继续您的变基础:
git rebase --continue
如果你想中止你的变基作用,你可以写这个git命令:
`git rebase --abort`