如何让“git push”在分支中包含标签?

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

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

有没有什么办法让git push按照同样的方式行事? 该手册页说明如何在命令行上推送无标签(默认),所有标签( - --tags )或您的名称。 它没有办法推动所有指向分支的人。


你可以用git1.8.3 +(2013年5月)试试:

git push --follow-tags

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

这不会推送所有标签,但只能从您正在推送的分支(HEAD)中访问。

正如“使用Git将标签推送到远程存储库?”中所述,这只涉及带注释的标签,而不涉及轻量级标签。

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


使用Git 2.4.1+(Q2 2015),该选项可以设置为默认值。

请参阅Dave Olszewski( cxreg )的commit a8bc269:

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

该文件将包括:

push.followTags::

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

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

链接地址: http://www.djcxy.com/p/27137.html

上一篇: How to make "git push" include tags within a branch?

下一篇: Do Git tags only apply to the current branch?