【问题标题】:How to make "git push" include tags within a branch?如何使“git push”在分支中包含标签?
【发布时间】:2013-06-17 15:10:28
【问题描述】:

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

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

有没有办法让git push 表现得一样?手册页说明如何推送无标签(默认)、所有标签 (--tags) 或您在命令行上命名的标签。它没有办法将所有指向分支的东西都推入分支。

【问题讨论】:

    标签: git


    【解决方案1】:

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

    git push --follow-tags
    

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

    这不会推送所有标签,而只会推送可从您推送的分支 HEAD 访问的标签。

    如“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。它也可以基于每个存储库指定。

    【讨论】:

    • 不适用于轻量级标签,仅适用于带注释的标签
    • 推送时需要在最后加上origin master吗?
    猜你喜欢
    • 2015-04-20
    • 2011-12-31
    • 2016-10-26
    • 1970-01-01
    • 2017-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多