假设有人创建了一个分支xyz。如何从远程服务器(例如GitHub)中提取分支xyz并将其合并到本地存储库中的现有分支xyz中?

答案推送分支到Git会给我一个错误“![拒绝]”,并提到“非快进”。


当前回答

从远程到本地获取新分支的简单解决方案

获取远程分支git获取xyz本地切换到该分支git开关xyz最后,通过运行git分支

其他回答

你也可以

git pull -r origin master

修复合并冲突(如果有)

git rebase --continue

-r表示重基。这将使您从

        v  master       
o-o-o-o-o
     \o-o-o
          ^ other branch

to

        v  master       
o-o-o-o-o-o-o-o
              ^ other branch

这将导致一个更干净的历史。注意:如果您已经将另一个分支推送到源(或任何其他远程),则可能必须在重新设置基之后强制推送分支。

git push -f origin other-branch

只需显式跟踪远程分支,一个简单的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

可以使用

git checkout --track origin/the-branch-name

确保分支名称完全相同。

一种安全的方法是首先创建本地分支(即xyz),然后将远程分支拉入本地。

# create a local branch
git checkout -b xyz

# make sure you are on the newly created branch
git branch

# finally pull the remote branch to your local branch
git pull origin xyz

下面是可以将远程分支拉到本地分支的语法。

git pull {repo} {remotebranchname}:{localbranchname}

git pull origin xyz:xyz

最好的方法是:

git checkout -b <new_branch> <remote repo name>/<new_branch>