如何让“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
。 它也可以在每个存储库的基础上指定。