小编典典

Git 从 GitHub 拉取某个分支

all

我有一个有多个分支的项目。我一直在将它们推送到GitHub,现在其他人正在从事该项目,我需要从
GitHub 中提取他们的分支。它在master中运行良好。但是说有人创建了一个分支xyz。如何xyz从 GitHub
中提取分支并将其合并到xyz我的分支中localhost

我实际上在这里有我的答案: 在 Git
中推送和拉取分支

但我得到一个错误“![拒绝]”和一些关于“非快进”的东西。

有什么建议?


阅读 244

收藏
2022-03-02

共1个答案

小编典典

但我得到一个错误“![拒绝]”和一些关于“非快进”的东西

那是因为 Git 无法将分支中的更改合并到您当前的 master 中。假设您已经签出 branch master,并且想要合并到远程 branch
other-branch。当你这样做时:

$ git pull origin other-branch

Git基本上是这样做的:

$ git fetch origin other-branch && git merge other-branch

也就是说, apull只是 afetch后跟 a merge。但是,当pull-ing 时,Git 只有other-branch
可以执行 快进 合并时才会合并。 快进 合并是一种合并,其中您尝试合并的分支的头部是您要合并的分支的头部的 直接后代。
例如,如果您有这个历史树,那么合并other-branch将导致快进合并:

O-O-O-O-O-O
^         ^
master    other-branch

但是,这 不会 是快进合并:

    v master
O-O-O
\
 \-O-O-O-O
         ^ other-branch

要解决您的问题,请先 获取 远程分支:

$ 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!
2022-03-02