假设有人创建了一个分支xyz。如何从远程服务器(例如GitHub)中提取分支xyz并将其合并到本地存储库中的现有分支xyz中?
答案推送分支到Git会给我一个错误“![拒绝]”,并提到“非快进”。
假设有人创建了一个分支xyz。如何从远程服务器(例如GitHub)中提取分支xyz并将其合并到本地存储库中的现有分支xyz中?
答案推送分支到Git会给我一个错误“![拒绝]”,并提到“非快进”。
当前回答
从远程到本地获取新分支的简单解决方案
获取远程分支git获取xyz本地切换到该分支git开关xyz最后,通过运行git分支
其他回答
gitfetch将获取最新的分支列表。
现在您可以用git签出MyNewBranch
完成时间:)
有关更多信息,请参阅docs:git fetch
这有助于我在将其合并到其他分支之前获取远程分支:
git fetch repo xyz:xyz
git checkout xyz
简单地说,如果你想从GitHub中提取分支,我希望:
git fetch origin
git branch -f the-branch-I-want origin/the-branch-I-want
git checkout the-branch-I-want
只需显式跟踪远程分支,一个简单的git pull就能满足您的需求:
git branch -f remote_branch_name origin/remote_branch_name
git checkout remote_branch_name
后者是本地操作。
或者更符合GitHub关于分叉的文档:
git branch -f new_local_branch_name upstream/remote_branch_name
本地用户需要分别更新主分支和XYZ分支
这些帖子都没有回答最初的问题!
如何从远程服务器(例如GitHub)拉取分支xyz将其合并到我的本地回购中的现有分支xyz中?推送分支到Git的答案是“![拒绝]”并提到“非快进”。
如果要将远程xyz分支合并到本地xyz分支中,其中两个分支都存在于远程和本地存储库中的主分支之外,只需先选择或“签出”本地xyz分行,然后对同一个远程分支执行“拉”操作。易于理解的
git checkout xyz
git pull origin xyz
但是,用户收到了一个错误!该更新不起作用。为什么?
如果这是失败的,这与远程和本地存储库上的两个xyz分支无法合并无关。听起来,远程存储库上的主分支已更改为本地存储库没有的新提交。快进消息可能意味着远程回购上的xyz分支无法更新本地回购的xyz分行,直到本地回购首先从远程回购获得添加到其主分支的所有更改。
这些可能是其他开发人员添加到远程主分支的新提交或更改,然后在他们的xyz分支上运行一个rebase,将其移动到远程主中新提交HEADS的末尾。本地回购用户无法合并该更改,因为其主分支在末尾缺少那些新添加的提交,因此无法更新xyz rebase更改,直到其回购上的本地主分支首先通过拉取更新为合并。
因此,继续使用远程主机的更新来更新本地主机,首先使用pull,然后再次尝试xyz分支pull。。。
git checkout master
git pull origin
git checkout xyz
git pull origin xyz
记住,拉取只是一个获取,然后从远程回购合并到您当前关注的任何分支上的本地回购。