How to download a branch with git?
我在Github上主持了一个项目。我在一台计算机上创建了一个分支,然后将更改推送到GitHub:
1 | git push origin branch-name |
现在我在另一台电脑上,我想下载那个分支。所以我试着:
1 | git pull origin branch-name |
号
…但这一切都是用新分支中的更改覆盖了我的主分支。
在不覆盖现有分支的情况下,如何正确地拉出远程分支?
由于相关问题,我发现需要将远程分支"签出"为新的本地分支,并指定新的本地分支名称。
1 | git checkout -b newlocalbranchname origin/branch-name |
。
或者你可以这样做:
1 | git checkout -t origin/branch-name |
后者将创建一个分支,该分支也设置为跟踪远程分支。
更新:从我最初发布这个问题到现在已经5年了。我学到了很多东西,从那以后Git有了进步。我通常的工作流程现在有点不同了。
如果我想获取远程分支,我只需运行:
1 | git pull |
。
这将获取所有远程分支并合并当前分支。它将显示如下所示的输出:
1 2 3 4 5 6 | 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知道我的新
1 | git checkout my-bugfix-branch |
通常,我需要在签出分支之前创建它,但是在较新版本的Git中,它足够智能,可以知道您要签出这个远程分支的本地副本。
对于像我这样的Git新手,您可以按照以下步骤下载远程存储库,然后切换到要查看的分支。他们可能在某种程度上滥用Git,但它确实帮了我的忙!-)
克隆要为其下载代码的存储库(在本例中,我在Github上选择了lrresty项目):
1 2 | $ git clone https://github.com/lukeredpath/LRResty.git $ cd LRResty |
。
检查此时正在使用的分支(应该是主分支):
1 2 | $ git branch * master |
看看你想要的分支,在我的例子中,它被称为"电弧化的":
1 2 3 | $ git checkout -b arcified origin/arcified Branch arcified set up to track remote branch arcified from origin. Switched to a new branch 'arcified' |
。
确认您现在正在使用所需的分支:
1 2 3 | $ git branch * arcified master |
号
如果以后要再次更新代码,请运行
1 2 | $ git pull Already up-to-date. |
号
您可以使用git-remote,比如:
1 | git fetch origin |
然后设置一个本地分支来跟踪远程分支,如下所示:
1 | git branch --track [local-branch-name] origin/remote-branch-name |
号
现在,您将拥有本地分支名称中的远程Github分支的内容。
您可以切换到本地分支名称并开始工作:
1 | git checkout [local-branch-name] |
导航到要从Git-Bash上的Git下载的新计算机上的文件夹。
使用下面的命令从您喜欢的任何分支下载代码
埃多克斯1〔2〕
它将下载相应的分支代码。
报告名称中的Git克隆和CD:
1 2 3 | $ git clone https://github.com/PabloEzequiel/iOS-AppleWach.git Cloning into 'iOS-AppleWach'... $ cd iOS-AppleWach |
号
切换到我想要的分支(Github页面):
1 2 3 | $ 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' |
号
拉树枝:
1 2 | $ git pull Already up-to-date. |
号
LS:
1 2 | $ ls index.html params.json stylesheets |
号
您可以使用:
埃多克斯1〔3〕
只克隆/下载分支的内容。
这对我特别有帮助,因为我的分支的内容与主分支完全不同(尽管这通常不是这样)。因此,上面其他人列出的建议对我没有帮助,即使在我检查了分支并执行了git pull之后,我最终还是会得到一份master的副本。
这个命令将直接提供分支的内容。这对我很有用。
创建一个新目录,然后改为克隆。
Git克隆(源地址)(分支机构名称)