如何使用git下载分支?

时间:2010-02-19 05:42:32

标签: git branch

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

git push origin branch-name

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

git pull origin branch-name

...但所有这一切都是用新分支中的更改覆盖了我的主分支。

在不覆盖现有分支的情况下,如何正确拉动远程分支需要做什么?

10 个答案:

答案 0 :(得分:320)

感谢related question,我发现我需要将远程分支“签出”作为新的本地分支,并指定一个新的本地分支名称。

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中,它足够聪明,知道你想签出这个远程分支的本地副本

答案 1 :(得分:58)

对于像我这样的任何Git新手,下面是一些步骤,您可以按照以下步骤下载远程存储库,然后切换到要查看的分支。他们可能会以某种方式滥用Git,但它为我做了这个工作! : - )

克隆要下载代码的存储库(在此示例中,我在Github上选择了LRResty project):

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

此时检查您正在使用的分支(它应该是主分支):

$ git branch    
* master

检查你想要的分支,在我的情况下,它被称为'arcified':

 $ 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.

答案 2 :(得分:21)

您可以使用git remote:

git fetch origin

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

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

现在,您将在local-branch-name中拥有远程github分支的内容。

您可以切换到该local-branch-name并开始工作:

git checkout [local-branch-name]

答案 3 :(得分:11)

导航到要从git bash上的git下载的新计算机上的文件夹。

使用以下命令从您喜欢的任何分支下载代码

provider: name: aws runtime: python3.6 stage: dev region: [REGION] iamRoleStatements: - Effect: "Allow" Action: - "s3:GetObject" Resource: { "Fn::Join": ["", ["arn:aws:s3:::", { "Ref": [BUCKET NAME] }, "/*" ] ] }

它将下载相应的分支代码。

答案 4 :(得分:9)

在repo名称中使用git clone和cd:

$ git clone https://github.com/PabloEzequiel/iOS-AppleWach.git
Cloning into 'iOS-AppleWach'...
$ cd iOS-AppleWach

切换到我想要的分支(GitHub页面):

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

拉开分支:

$ git pull
Already up-to-date.

LS:

$ ls
index.html      params.json     stylesheets

答案 5 :(得分:6)

您可以使用:

git clone <url> --branch <branch>

仅克隆/下载分支的内容。

这对我特别有帮助,因为我分支的内容与master分支完全不同(尽管通常不是这种情况)。 因此,上面其他人列出的建议对我没有帮助,即使我签出分支并进行git pull,我也仍然会获得母版的副本。

此命令将直接为您提供分支的内容。它对我有用。

答案 6 :(得分:2)

$ git fetch

$ git checkout <branch>

git fetch 将获取所有远程分支。 您可以使用 git branch -r(或 git branch -rv)验证远程分支 如果您没有同名的现有分支,则可以直接使用 git checkout <branch>

切换到该分支

答案 7 :(得分:0)

git checkout -b分支/名称

git pull起源分支/名称

答案 8 :(得分:-3)

我们可以使用以下神奇命令下载指定分支:

git clone -b < branch name > <remote_repo url> 

答案 9 :(得分:-8)

创建一个新目录,然后执行克隆。

git clone(原产地址)(分支名称)