【问题标题】:Create a tag in a GitHub repository在 GitHub 存储库中创建标签
【发布时间】:2013-08-15 12:51:02
【问题描述】:

我在 GitHub 中有一个存储库,我需要标记它。
我在 shell 中进行了标记,但在 GitHub 上没有显示。

我还需要做什么吗?

我在shell中使用的命令是:

git tag 2.0

现在当我输入 git tag 时,它会显示:

2.0

所以看起来标签是存在的,对吗?

存储库是:https://github.com/keevitaja/myseo-pyrocms

如何让这个标签显示在 GitHub 上?我的标签在哪里?

【问题讨论】:

    标签: git github git-tag


    【解决方案1】:

    您可以使用以下任一方法为 GitHub 创建标签:

    • Git 命令行,或
    • GitHub 的网络界面。

    从命令行创建标签

    要在当前分支上创建标签,请运行:

    git tag <tagname>
    

    如果您想在标签中包含描述,请添加-a 以创建annotated tag

    git tag <tagname> -a
    

    这将创建一个 local 标记,其中包含您所在分支的当前状态。推送到远程仓库时,默认情况下不包含标签。您需要明确表示要将标签推送到远程仓库:

    git push origin --tags
    

    来自official Linux Kernel Git documentation for git push

    --tags
    

    除了在命令行中明确列出的 refspecs 之外,所有 refs/tags 下的 refs 都会被推送。

    或者如果你只想推送一个标签:

    git push origin <tag>
    

    有关上述语法的更多详细信息,另请参阅我对How do you push a tag to a remote repository using Git? 的回答。

    通过 GitHub 的 Web 界面创建标签

    您可以在他们的Creating Releases help page 找到 GitHub 的说明。总结如下:

    1. 点击我们存储库页面上的发布链接,

    2. 点击创建新版本起草新版本

    3. 填写表单字段,然后点击底部的发布版本

    4. 在 GitHub 上创建标签后,您可能还想将其提取到本地存储库中:

      git fetch
      

    现在下一次,您可能希望在网站的同一版本中再创建一个标签。为此,请按照以下步骤操作:

    转到发布标签

    1. 点击发布的编辑按钮

    2. 提供新标签的名称 ABC_DEF_V_5_3_T_2 并点击标签

    3. 点击选项卡后,UI 将显示此消息:非常好!当您发布此版本时,将从目标创建此标签。 UI还将提供选择分支/提交的选项

    4. 选择分支或提交

    5. 选中 qa 标签的“这是一个预发布”复选框,如果标签是为 Prod 标签创建的,则取消选中它。

    6. 之后点击“更新发布”

    7. 这将在现有版本中创建一个新标签。

    【讨论】:

    • @RandomDSdevel 在 github,release 只是一个标签。您可以从命令行创建标签并将其推送到 github 远程。标记将在 githubs 网页上显示为发布版本。
    • @IuriG.:嗯,是的,但是你不应该能够创建不会被 GitHub 自动获取为发布的标签吗……? (当我最初创建您回复的评论并且您的回复 this 一个是回复时,标签至少 used 自动变成发布,虽然我不知道这是否仍然是这种情况,或者没有按照您的答案中解释的工作流程进行提示,这不再是真的。我不久前向 GitHub 提交了关于此的支持请求,但他们有一点那时支持积压,所以我的请求被关闭了。)
    • 通过 Github 界面只能创建轻量级标签。
    • 不幸的是,github 界面不允许您标记提交,除非它是在过去 24 小时内或最近 10 次(?左右?)提交。
    • 我认为这不再有效。我再也看不到“草拟新版本”按钮了。
    【解决方案2】:

    创建标签

    Git 使用两种主要类型的标签:轻量级带注释的

    带注释的标签

    要在 Git 中创建带注释的标签,您只需在终端上运行以下简单命令即可。

    $ git tag -a v2.1.0 -m "xyz feature is released in this tag."
    $ git tag
    v1.0.0
    v2.0.0
    v2.1.0
    

    -m 表示该特定标签的消息。我们可以在此处编写要标记的功能摘要。

    轻量级标签

    标记提交的另一种方法是轻量级标记。我们可以通过以下方式做到这一点:

    $ git tag v2.1.0
    $ git tag
    v1.0.0
    v2.0.0
    v2.1.0
    

    推送标签

    要推送特定标签,您可以使用以下命令:

    git push origin v1.0.3
    

    或者如果您想推送所有标签,请使用以下命令:

    git push --tags
    

    列出所有标签

    要列出所有标签,请使用以下命令。

    git tag
    

    【讨论】:

    • 你是在git commit之前还是之后添加标签?
    • 我在 git commit 之后添加了标签。
    • @garfbradaz 当你制作一个标签时,它指向最新的提交,所以之后。
    【解决方案3】:

    您只需在运行git tag 2.0 命令后推送标签即可。

    所以现在就做git push --tags

    【讨论】:

    • 我宁愿建议使用git push v2.0而不是--tags,可能还有其他标签不应该推送。
    • 只有当您的本地标签与远程标签不同时才会出现问题。如果这成为问题,它们很容易同步。
    • @kjdion84 不,如果有过时的标签,这也是一个问题:总是会获取所有标签,当有人使用 --tags 时,很难摆脱它们。
    • git push origin v2.0
    • @tschoppi 你可以使用git push --follow-tags 来确保只推送与你实际推送的提交相关的标签
    【解决方案4】:

    如果你想像我一样标记一个特定的提交

    这是执行此操作的命令:-

    例子:

    git tag -a v1.0 7cceb02 -m "Your message here"
    

    7cceb02 是提交 ID 的开始部分。

    然后您可以使用git push origin v1.0 推送标签。

    您可以使用git log 来显示当前分支中的所有提交 ID。

    【讨论】:

    • 感谢@officialrahulmandal。这正是我所需要的。
    【解决方案5】:

    小心:在Lawakush Kurmi's answer (git tag -a v1.0) 中的命令中使用了-a 标志。这个标志告诉 Git 创建一个带注释的标志。如果您不提供标志 (i.e. git tag v1.0),那么它将创建所谓的轻量级标签。


    建议使用带注释的标签,因为它们包含很多额外的信息,例如:

    • 制作标签的人
    • 标签的制作日期
    • 标签的消息

    因此,您应该始终使用带注释的标签。

    【讨论】:

      【解决方案6】:

      这完全取决于您要创建什么类型的标签:

      • 如果您想创建 Annotated 标签,以显示额外的元数据,您可以通过以下方式进行:git tag -a v1.0.0
      • 另一方面,轻量级标签用于为您的提交“添加书签”以供私人使用:git tag v1.0.0

      还有一些其他的标签功能,例如:

      • 列出标签 - git tag -l -n3。该命令列出所有现有标签,标签消息最多为 3 行。默认情况下 -n 只显示第一行。
      • 标签详情 - git show &lt;tag_identifier&gt;。它显示了您需要了解的有关特定标签的所有信息。
      • 排序标签 - git tag --sort=&lt;type&gt;
      • 发布标签 - git push origin v1.0。您可以单独 git push 标签,也可以运行 git push --tags 一次推送所有标签。

      请务必查看此tag related article 了解更多相关信息。

      【讨论】:

        【解决方案7】:

        使用Sourcetree

        以下是从 master 发布构建时创建 GitHub 标签 的简单步骤。

        1. 打开 source_tree 选项卡

        2. 右键单击左侧导航部分中显示的标签中的标签部分

        3. 点击新建标签()

        4. 会出现添加标签和删除标签的对话框
        5. 点击从给定名称到标签的添加标签(代码的首选版本名称)

        6. 如果您想在远程推送 TAG,同时创建 TAG ref:步骤 5 提供复选框 push TAG to origin 选中它并推送标签出现在远程存储库中

        7. 如果您在创建 TAG 时忘记选中 Push to origin 框,您可以稍后通过右键单击创建的 TAG,单击 推送到原点。

        【讨论】:

        • 这个答案解释了如何使用 Sourcetree 创建本地标签,但问题都是关于如何将标签推送到远程存储库(本例中为 GitHub)。您在第 6 步中说要执行此操作,但您忽略了相关说明。
        • @RoryO'Kane 请检查一下我已经更新了我的答案,谢谢指出
        【解决方案8】:

        要创建 git 标签,您可以简单地运行 git tag &lt;tagname&gt; 命令,替换为标签的实际名称。 下面是管理 git 标签基础的完整教程:https://www.drupixels.com/blog/git-tags-create-push-remote-checkout-and-much-more

        【讨论】:

          猜你喜欢
          • 2014-01-25
          • 2012-06-01
          • 2021-08-07
          • 1970-01-01
          • 2015-04-07
          • 2015-12-27
          • 2012-04-01
          • 2019-11-30
          • 1970-01-01
          相关资源
          最近更新 更多