如何制作“git push”包括分支内的标签?

时间:2013-06-20 16:38:51

标签: git

获取单个分支时,git fetch包含指向分支的所有标记:

  

当refspec将获取的结果存储在远程跟踪分支中时,   自动遵循指向这些分支的标记。这个   首先使用给定的s从远程获取,   如果存储库具有由远程标记指向的对象   它还没有,然后获取那些丢失的标签。如果另一端   有标签指向你不感兴趣的分支,你不会   得到他们。

有没有办法让git push表现得一样?手册页说明了如何在命令行中没有标记(默认值),所有标记(--tags)或名称。它没有提供一种方法来推动所有指向分支的那些。

1 个答案:

答案 0 :(得分:46)

您可以尝试git1.8.3+(2013年5月):

git push --follow-tags
  

新的“--follow-tags”选项告诉“git push”在推出分支时推送相关的带注释标签。

这不会推送所有标签,而只会推送您正在推送的分支机构可以访问的标签。

如“Push a tag to a remote repository using Git?”中所述,这仅涉及annotated tags,而不是轻量级标签。

git tag 1.0(轻量级)不会与--follow-tags一起推送,而是git push --tags推送。


使用Git 2.4.1 +(2015年第二季度),该选项可以设置为默认值。

commit a8bc269Dave Olszewski (cxreg)

  

可以更轻松地添加新配置位,然后添加push.followTags配置,默认情况下会启用--follow-tags选项。

文档将包括:

push.followTags::
  

如果设置为true,则默认启用“--follow-tags”选项。您可以在推送时通过指定“--no-follow-tags

覆盖此配置

全局启用此设置,您可以运行git config --global push.followTags true。它也可以基于每个存储库来指定。