在GitHub存储库中创建标签


907

我在GitHub中有一个存储库,需要对其进行标记
我在外壳中加了标签,但在GitHub上却没有显示。

我还需要做其他事情吗?

我在shell中使用的命令是:

git tag 2.0

现在,当我键入git tag时显示:

2.0

看来标签存在了,对吗?

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

如何使此标签显示在GitHub上?我的标签在哪里?


2
您需要将标签推送到存储库。使用git标签与git branch相同,这意味着您必须创建/添加标签,然后将标签推送到存储库中,以便所有人都可以获取它。对于更基础到更高级的内容,请参见abhisheksharma.online/git-tags
Abhishek Sharma,

Answers:


1492

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

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

从命令行创建标签

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

git tag <tagname>

如果要在标签中包含描述,请添加-a以创建带注释的标签

git tag <tagname> -a

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

git push origin --tags

官方Linux Kernel Git文档中获得git push

--tags

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

或者,如果您只想推送单个标签:

git push origin <tag>

另请参阅我的答案:如何使用Git将标签推送到远程存储库?有关上述语法的更多详细信息。

通过GitHub的Web界面创建标签

您可以在GitHub的创建版本帮助页面上找到GitHub的说明。总结如下:

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

    屏幕截图1

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

    屏幕截图2

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

    屏幕截图3 屏幕截图4

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

    git fetch
    

现在下一次,您可能要在网站的同一发行版中再创建一个标签。为此,请执行以下步骤:

转到发布标签

  1. 单击编辑按钮以发布

  2. 提供新标签ABC_DEF_V_5_3_T_2的名称,然后点击选项卡

  3. 点击选项卡后,UI将显示以下消息:太好了!发布此版本时,将从目标创建此标记。UI还将提供一个选择分支/提交的选项

  4. 选择分支或提交

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

  6. 之后,单击“更新版本”

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


8
github中的@RandomDSdevel,发布只是一个标签。您可以从命令行创建标签并将其推送到github远程。标记将作为发行版显示在githubs网页上。
Iuri G.

6
@IuriG .:是的,但是您不应该能够创建不会在GitHub发布时自动被拾取的标签吗?(回来时,我最初创建到您回应并为其你的回应评论一个答复,标签至少使用得到自动转为释放,虽然我不知道这是否仍是如此或不与thinsp;按照您的回答提示中解释的工作流程进行分析,这不再是真的。我不久前向GitHub提交了一个支持请求,但当时他们有一些支持积压,所以我的请求已关闭。)
RandomDSdevel

FWIW,对GitHub的Web界面的路,我看不到创建或点击发布后起草新的释放按钮在步骤1中链接
Snowcrash

2
通过Github界面,您只能创建轻量级标签。
Anatolii Stepaniuk,

2
不幸的是,github接口不允许您标记提交,除非它是在最近24小时内或最近10次(?或大约?)提交中。
tsalaroth

86

创建标签

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
garfbradaz

我在git commit之后添加了标签。
Lawakush Kurmi

65

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

所以git push --tags现在就做。


40
我宁愿建议使用git push v2.0代替--tags,可能还有其他不应推送的标签。
tschoppi

1
如果您的本地标签与远程标签不同,那只是一个问题。如果出现问题,它们很容易同步。
kjdion84

1
@ kjdion84不,如果有过时的标签,这也是一个问题:所有标签总是被获取,并且当有人使用时--tags,很难摆脱它们。
maaartinus

2
git push origin v2.0
祈祷

我犯了使用标签的错误!
User3

9

注意:在Lawakush Kurmi的答案git tag -a v1.0)中的命令中-a使用了标记。该标志告诉Git创建带注释的标志。如果您不提供标志(i.e. git tag v1.0),则会创建所谓的轻量级标签。


建议使用带注释的标签,因为它们包含许多其他信息,例如:

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

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


3

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

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

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

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

请务必查看与标签相关的文章,以获取更多相关信息。


3

使用Sourcetree

当您从master释放build时,这是创建GitHub Tag的简单步骤。

  1. 打开source_tree选项卡

    步骤1

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

    第2步

  3. 点击新标签()

  4. 出现一个对话框,用于添加标签和删除标签
  5. 单击从给名称添加标签到标签(代码的首选版本名称)

    第三步

  6. 如果您想将TAG推送到远程,则在创建TAG ref时:步骤5给出了将TAG TAG推送到原点的 复选框,并在远程存储库中显示了推送的Tag

  7. 如果在创建TAG时忘记了选中“ 推入原点 ”框,可以稍后通过右键单击创建的TAG,然后单击“ 推入原点” 来做到这一点。 在此处输入图片说明


2
该答案说明了如何使用Sourcetree创建本地标签,但问题只在于如何将标签推送到远程存储库(在本例中为GitHub)。您说要在第6步中执行此操作,但是省略了相关说明。
罗里·奥肯

@ RoryO'Kane,请立即检查,我已经更新了答案,感谢您指出
Suresh Maidaragi,

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.