在GitHub仓库中创建一个标签

1498

我在GitHub上有一个代码库,需要进行标记(tag)
我在shell中使用了标记命令,但是在GitHub上没有显示出来。

我还需要做些其他的事情吗?

我在shell中使用的命令是:

git tag 2.0

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

2.0

看起来标签已经存在了,是吗?

这个仓库是:https://github.com/keevitaja/myseo-pyrocms

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

10个回答

2397

您可以通过以下两种方式为GitHub创建标签:

  • 使用Git命令行,或
  • 使用GitHub的Web界面。

从命令行创建标签

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

git tag <tagname>

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

git tag <tagname> -a

这将创建一个带有当前分支状态的local标签。在推送到远程库时,默认情况下不会包括标签。您需要明确说明您想要将标签推送到远程库:

git push origin --tags

来自“git push”官方Linux内核Git文档

--tags

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

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

git push origin <tag>

查看如何使用Git将标签推送到远程存储库?中的我的回答,以获取有关上述语法的更多详细信息。

通过GitHub网页界面创建标签

您可以在GitHub的创建发布页面中找到相关指南。以下是摘要:

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

    屏幕截图 1

  2. 单击创建新发布创建新草稿发布

    屏幕截图 2

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

    屏幕截图 3 屏幕截图 4

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

    git fetch
    

现在,下一步你可能想从同一个发布版本的网站中创建另一个标签。请按照以下步骤:

前往发布选项卡

  1. 点击编辑按钮以编辑发布的内容

  2. 输入新标签的名称 ABC_DEF_V_5_3_T_2 并按 Tab 键

  3. 按下 Tab 键后,界面会显示此消息:太好了!当您发布此版本时,将从目标创建此标记。UI 还提供选择分支/提交的选项

  4. 选择分支或提交

  5. 为 qa 标签勾选 "这是预发布" 复选框,如果该标记是为 Prod 标记创建的,则取消勾选。

  6. 然后点击 "更新发布"

  7. 这将在现有发布中创建一个新的标签。


12
在 GitHub 中,“release” 只是一个标签。您可以通过命令行创建标签并将其推送到 GitHub 远程仓库,标签将显示为 GitHub 网页上的“release”。 - Iuri G.
7
@IuriG.: 是的,但是你应该能够创建不会被GitHub自动识别为发布的标签...(当我最初创建评论并回复你的评论时,标签至少过去会被自动转换为发布版,尽管我不知道现在是否仍然如此。根据您答案中解释的工作流程,这似乎不再是真实情况。我一段时间以前向GitHub提交了一个支持请求,但他们的支持队列当时有点拥挤,所以我的请求被关闭了。) - RandomDSdevel
4
通过 Github 界面,你只能创建轻量级标签。 - Anatolii Stepaniuk
3
遗憾的是,GitHub界面不允许你为提交打标签,除非它是在过去的24小时内或最近的10个提交之内。 - tsalaroth
5
我认为这个不再起作用了。我不再看到“起草新版本发布”的按钮了。 - sprajagopal
显示剩余4条评论

193

创建标签

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

1
你是在git commit之前还是之后添加标签? - garfbradaz
1
我已经在 git commit 后添加了标签。 - Lawakush Kurmi
5
当你创建一个标签时,它会指向最新的提交,因此是之后的提交。 - user4945014
如何使用git pull命令拉取一个标签? - Steve3p0

89

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

现在执行git push --tags即可。


63
我建议使用 git push v2.0 而不是 --tags,因为可能存在其他不应被推送的标签。 - tschoppi
1
只有当您的本地标签与远程标签不同时,才会出现这个问题。如果出现问题,同步它们很容易。 - kjdion84
3
不,如果有过时的标签,那也是一个问题:所有标签都会被获取,当有人使用“--tags”时,很难摆脱它们。 - maaartinus
4
或者 git push origin v2.0 - prayagupa
我犯了一个错误,使用了标签! - User3
2
@tschoppi,你可以使用 git push --follow-tags 命令来确保只推送与你正在推送的提交相关的标签。 - Vitim.us

87

如果您想像我一样标记特定的提交记录

这是一个可用的命令:

示例:

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

这里的7cceb02是提交ID的开头部分。

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

您可以执行 git log 以显示当前分支中的所有提交ID。


19

注意:在 Lawakush Kurmi 的回答 中的命令 (git tag -a v1.0) 使用了 -a 参数。这个参数告诉Git创建一个带注释的标签。如果你不提供这个参数(例如:git tag v1.0),那么就会创建一个被称为轻量级标签。


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

  • 创建标签的人
  • 标签创建时间
  • 标签的信息

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


8

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

  • 如果您想创建带注释的标签以显示额外的元数据,可以使用以下方法执行: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 push 标签,或者可以运行 git push --tags 一次性推送所有标签。

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


7

使用Sourcetree

以下是从主分支发布构建时创建GitHub标签的简单步骤:

  1. 打开Sourcetree标签页

    第一步

  2. 右键单击左侧导航栏中出现的“Tag”部分

    第二步

  3. 点击“New Tag()”

  4. 会弹出一个对话框,用于添加和删除标签
  5. 点击“Add Tag”,给标签命名(建议使用代码的版本名称)

    第三步

  6. 如果您在创建标签时想要将标签推送到远程仓库,请在创建标签时勾选第5步中提供的“push TAG to origin”复选框,然后推送标签将出现在远程仓库中

  7. 如果您在创建标签时忘记勾选“Push to origin”复选框,可以通过右键单击创建的标签,然后单击“Push to origin”来补救。

    enter image description here

2
这个答案解释了如何使用Sourcetree创建本地标签,但问题是关于如何将标签推送到远程仓库(在这种情况下是GitHub)。您在第6步中提到了如何做到这一点,但您没有提供说明。 - Rory O'Kane
@RoryO'Kane 请现在检查一下,我已经更新了我的答案,感谢您指出。 - Suresh Maidaragi

1

针对 SourceTree 用户:

右键单击提交并选择“标签...”,然后确保选中“推送标签”框。

enter image description here


1
如果您使用Intellij,可以使用菜单“Git/New Tag”,然后按CTRL-SHIFT-K,在对话框底部勾选“push tags”复选框。这个标签将出现在Github上,而不需要创建一个发布。

push commit with tags with intellij


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接