获取单个分支时,git fetch
包含指向分支的所有标记:
当refspec将获取的结果存储在远程跟踪分支中时, 自动遵循指向这些分支的标记。这个 首先使用给定的s从远程获取, 如果存储库具有由远程标记指向的对象 它还没有,然后获取那些丢失的标签。如果另一端 有标签指向你不感兴趣的分支,你不会 得到他们。
有没有办法让git push
表现得一样?手册页说明了如何在命令行中没有标记(默认值),所有标记(--tags
)或名称。它没有提供一种方法来推动所有指向分支的那些。
答案 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 a8bc269见Dave Olszewski (cxreg
):
可以更轻松地添加新配置位,然后添加
push.followTags
配置,默认情况下会启用--follow-tags
选项。
文档将包括:
push.followTags::
如果设置为true,则默认启用“
覆盖此配置--follow-tags
”选项。您可以在推送时通过指定“--no-follow-tags
”
全局启用此设置,您可以运行git config --global push.followTags true
。它也可以基于每个存储库来指定。