当前位置:  开发笔记 > 开发工具 > 正文

Git从GitHub拉出一个分支

如何解决《Git从GitHub拉出一个分支》经验,为你挑选了7个好方法。

我有一个有多个分支的项目.我一直把它们推给GitHub,现在有人正在研究这个项目,我需要从GitHub中取出它们的分支.它在master中工作正常.但是说有人创建了一个分支xyz.我如何xyz从GitHub中拉出分支并将其合并到xyz我的分支localhost

我实际上在这里得到了答案: 在Git中推拉分支

但我得到一个错误"![拒绝]"和一些关于"非快进"的事情.

有什么建议?



1> mipadi..:

但我得到一个错误"![拒绝]"和"非快进"的事情

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

$ git pull origin other-branch

Git基本上是这样做的:

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

也就是说,a pull只是a fetch后跟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!


通常,设置遥控器以便强制提取,即使它们不会导致快进提交,因此除非OP使用通常的配置改变了某些内容,否则它不应该在提取时发生.在fetch*或*merge期间可能会发生快进问题.是什么让你说这个问题肯定是在获取,而不是合并?

2> innaM..:

只需明确跟踪远程分支,简单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


如果你得到'不是有效的对象名:'origin/remote_branch_name',先做'git fetch origin'.

3> Robert Cabri..:

您可以使用以下命令将分支拉到分支.

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

git pull origin xyz:xyz

当你在主分支机构时,你也可以先检查一个分支,如:

git checkout -b xyz

这将从主控器创建一个新分支"xyz"并直接将其检出.

然后你做:

git pull origin xyz

这会将新分支拉到您当地的xyz分支.


我正在低估这一点,因为它试图将远程分支合并到您当前的分支(例如master).这不是大多数人想要做的事情,也不是OP所要求的.@mohit的答案是正确的选择.

4> mohit..:

最好的方法是:

git checkout -b  /



5> Bradley Floo..:

git fetch 将获取最新的分支列表.

现在你可以 git checkout MyNewBranch

完成:)


有关更多信息,请参阅docs:git fetch



6> Alex N...:

我不确定我是否完全理解这个问题,但拉动现有的分支是这样完成的(至少它对我有用:)

git pull origin BRANCH

这假设您的本地分支是从origin/BRANCH创建的.



7> anatoly tech..:

这有助于我在将其合并到其他之前获得远程分支:

git fetch repo xyz:xyz
git checkout xyz

推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有