更改存储库的远程分支并仅提取更改

时间:2017-04-16 00:01:07

标签: git github git-branch git-remote git-fetch

我有一个拥有大量分支的远程存储库。每次有新版本时,都会创建一个新分支。当新版本可用时,我怎样才能更改分支并拉动更改,以避免再次克隆它们。我只想下载新的提交。

1 个答案:

答案 0 :(得分:2)

执行摘要:

git fetch origin
git checkout new-version`

其中origin是远程名称,new-version是分支名称。

详细说明:

git fetch的{​​{3}}说:

  

从一个或多个获取分支和/或标记(统称为“refs”)   其他存储库,以及完成它们所需的对象   历史。远程跟踪分支已更新。

这基本上意味着它从远程转发并下载存储库的历史记录。但是,存储库可以有多个远程数据库,因此git fetch可以使用--all标记获取其中一个或多个。

  

默认情况下,指向要获取的历史记录的任何标记都是   也取了效果是获取指向分支的标签   您感兴趣的是。可以使用更改此默认行为   --tags或--no-tags选项...通过使用明确提取标签的refspec,   你可以获取不指向你感兴趣的分支的标签   同样。

意思是,如果你有,例如,分支 A,B& C 在遥控器上,在本地你正在分支 C 。如果您git fetch origin C,默认情况下,这也将获取指向该分支的标记,但它不会获取与其他分支相关的标记,例如 A B
如果要获取所有标记,只需将--tags添加到命令中即可。

最后,

  

如果未指定遥控器,则默认情况下为原点遥控器   使用,除非有为当前配置的上游分支   分支。

资源:

  • git fetch documentation,这一切都得到了很好的解释。
  • Git Pro documentation,第3.5章介绍了这一点。
  • 您可能还想查看此相关问题:book