假设有人创建了一个分支xyz
。如何拉动分支xyz
从远程服务器(例如GitHub) 并将其合并到现有分支中xyz
在我的本地仓库中?
答案是将分支推送到 Git给我错误“![拒绝]”并提到“非快进”。
但我收到错误“![拒绝]”以及有关“非快进”的信息
这是因为 Git 无法将分支中的更改合并到当前的 master 中。假设您已签出分支master
,并且您想合并到远程分支中other-branch
。当你这样做时:
$ git pull origin other-branch
Git 基本上是这样做的:
$ git fetch origin other-branch && git merge other-branch
这是一个pull
只是一个fetch
随后是一个merge
。然而,当pull
-ing,Git 将only merge other-branch
if它可以执行快进合并。 A快进merge 是一种合并,其中您尝试合并到的分支的头是直系后裔您要合并的分支的头部。例如,如果你有这个历史树,那么合并other-branch
将导致快进合并:
O-O-O-O-O-O
^ ^
master other-branch
然而,这将not是一个快进合并:
v master
O-O-O
\
\-O-O-O-O
^ other-branch
要解决您的问题,首先fetch远程分支:
$ git fetch origin other-branch
然后将其合并到您当前的分支中(我假设是master
),并修复任何合并冲突:
$ git merge origin/other-branch
# Fix merge conflicts, if they occur
# Add merge conflict fixes
$ git commit # And commit the merge!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)