如何用git下载分支?

我有一个在GitHub上托管的项目。 我在一台计算机上创建了一个分支,然后将更改推送到github

git push origin branch-name

现在我在另一台计算机上,我想下载该分支。 所以我尝试了:

git pull origin branch-name

...但所有这一切都覆盖我的主分支与我的新分支的变化。

我需要做些什么来正确拉动我的远程分支?


感谢相关的问题,我发现我需要将远程分支“检出”为新的本地分支,并指定一个新的本地分支名称。

git checkout -b newlocalbranchname origin/branch-name

或者你可以这样做:

git checkout -t origin/branch-name

后者将创建一个分支,该分支也被设置为跟踪远程分支。


更新:我最初发布这个问题已经5年了。 从那以后,我学到了很多东西,git也有所改进。 我平时的工作流程现在有点不同了。

如果我想获取远程分支,我只需运行:

git pull

这将获取所有远程分支并合并当前分支。 它会显示一个如下所示的输出:

From github.com:andrewhavens/example-project
   dbd07ad..4316d29  master     -> origin/master
 * [new branch]      production -> origin/production
 * [new branch]      my-bugfix-branch -> origin/my-bugfix-branch
First, rewinding head to replay your work on top of it...
Fast-forwarded master to 4316d296c55ac2e13992a22161fc327944bcf5b8.

现在git知道我的新my-bugfix-branch 。 要切换到这个分支,我可以简单地运行:

git checkout my-bugfix-branch

通常情况下,我需要先创建分支,然后才能检出它,但在较新版本的git中,知道要检出本远程分支的本地副本足够聪明。


对于像我这样的Git新手来说,这里有一些步骤可以用来下载远程仓库,然后切换到你想查看的分支。 他们可能以某种方式滥用Git,但它为我做了这份工作! :-)

克隆你想要下载代码的仓库(在这个例子中,我选择了Github上的LRResty项目):

$ git clone https://github.com/lukeredpath/LRResty.git
$ cd LRResty

检查你现在使用的分支(它应该是主分支):

$ git branch    
* master

看看你想要的分支,在我的情况下,它被称为“圆化”:

 $ git checkout -b arcified origin/arcified
 Branch arcified set up to track remote branch arcified from origin.
 Switched to a new branch 'arcified'

确认你正在使用你想要的分支:

$ git branch    
* arcified
  master

如果您想稍后再次更新代码,请运行git pull

$ git pull
Already up-to-date.

你可以像使用git remote一样:

git fetch origin

然后设置一个本地分支来跟踪远程分支,如下所示:

git branch --track [local-branch-name] origin/remote-branch-name

您现在可以在本地分支名称中获得远程github分支的内容。

你可以切换到本地分支名称并开始工作:

git checkout [local-branch-name]
链接地址: http://www.djcxy.com/p/4437.html

上一篇: How to download a branch with git?

下一篇: How to fetch all git branches?