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

Pet*_*ake 33 git

获取单个分支时,git fetch包括指向分支的任何标记:

当refspec将获取的结果存储在远程跟踪分支中时,将自动跟踪指向这些分支的标记.这是通过首先使用给定的s从远程获取来完成的,如果存储库具有由远程标记指向的对象,那么它将获取那些缺少的标记.如果另一端有标签指向你不感兴趣的分支,你就不会得到它们.

有没有办法让git push行为方式相同?手册页说明了如何--tags在命令行中不使用任何标签(默认值),所有标签()或名称.它没有提供一种方法来推动指向分支的所有指针.

Von*_*onC 55

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

git push --follow-tags
Run Code Online (Sandbox Code Playgroud)

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

这不会推送所有标签,而只会推送您正在推送的分支HEAD中可访问的标签.

如" 使用Git将标记推送到远程存储库? "中所述,这仅涉及带注释的标记,而不是轻量级标记.

git tag 1.0(轻量级)不会被推--follow-tags,它会git push --tags.


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

提交a8bc269戴夫·欧斯祖斯基(cxreg):

使添加新配置位更容易,然后添加默认情况下push.followTags打开--follow-tags选项的配置.

文件将包括:

push.followTags::
Run Code Online (Sandbox Code Playgroud)

如果设置为true --follow-tags,则默认启用' '选项.您可以通过指定' --no-follow-tags' 在推送时覆盖此配置

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

  • 不适用于lightweith标签,仅适用于带注释的标签 (5认同)