Bun*_*ker 28 git version-control github rebase git-rebase
我试图改变一位同事的工作.
首先,我得到了大量的冲突,其中<<<<<头部接缝包含新代码.
然后过了一会儿我得到以下错误:
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
Run Code Online (Sandbox Code Playgroud)
然后,如果我尝试继续,我得到以下错误:
fatal: cannot resume: .git/rebase-apply/final-commit does not exist.
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题,以便rebase不会出错?
小智 12
您可以运行git rebase --abort以完全撤消rebase.Git将返回到你的分支状态,就像调用git rebase之前一样.
您可以运行git rebase --skip以完全跳过提交.这意味着将不包括由有问题的提交引入的任何更改.您很少选择此选项.
你可以修复冲突.
如果不这样做,您应该重新创建分支,或者您可以删除包含rebase状态的.git/rebase-merge目录.
显然,你想要重新定义的分支也在你分支的时候,可能是清理历史记录或在另一个分支上重新定位.如果是这样,您需要:
git rebase --abortgit fetch现在有趣的部分:
git rebase --onto BUDDY_BRANCH YOUR_BRANCH~ YOUR_BRANCH
例如,你分支你的本地主人(结账/主人),一个新的分支test_branch(你现在想用当前的原点/主人更新)
git rebase --onto master test_branch~ test_branch
Run Code Online (Sandbox Code Playgroud)
这样做的简单来说,它需要你的分支初始父提交,在当前主服务器和基于它的rebase中找到它.
小智 -2
当您使用另一个分支更新本地分支时,您必须通过在您的修改和他们的修改之间进行选择来解决冲突。解决冲突后,您可以通过编写以下 git 命令继续变基:
git rebase --continue
如果您想中止变基操作,您可以编写以下 git 命令:
`git rebase --abort`
Run Code Online (Sandbox Code Playgroud)