ChatGPT解决这个技术问题 Extra ChatGPT

在 GitHub 存储库中创建标签

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

我还需要做什么吗?

我在 shell 中使用的命令是:

git tag 2.0

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

2.0

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

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

如何让这个标签出现在 GitHub 上?我的标签在哪里?


m
milso

您可以使用以下任一方法为 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 的说明。这是一个摘要:

单击我们存储库页面上的发布链接,单击创建新版本或起草新版本,填写表单字段,然后单击底部的发布版本,在 GitHub 上创建标签后,您可能希望将其提取到你的本地存储库: git fetch

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

转到发布选项卡

单击发布的编辑按钮 提供新标签的名称 ABC_DEF_V_5_3_T_2 并点击标签 点击标签后,UI 将显示此消息:非常好!当您发布此版本时,将从目标创建此标签。 UI还将提供一个选项来选择分支/提交选择分支或提交检查qa标签的“这是一个预发布”复选框,如果标签是为Prod标签创建的,则取消选中它。之后单击“更新版本”这将在现有版本中创建一个新标签。


github中的@RandomDSdevel,发布只是一个标签。您可以从命令行创建标签并将其推送到 github 远程。标签将作为发布版本出现在 github 网页上。
@IuriG.:嗯,是的,但是您是否应该能够创建不会被 GitHub 自动获取为发布的标签……? (当我最初创建您回复的评论并且您的回复是回复时,标签至少用于自动转换为发布,尽管我不知道这是否仍然如此......按照你的回答中解释的工作流程提示这不再是真的。我不久前向 GitHub 提交了一个支持请求,但当时他们有一些支持积压,所以我的请求被关闭了。)
通过 Github 界面,您只能创建轻量级标签。
不幸的是,github 界面不允许您标记提交,除非它是在过去 24 小时内或最后 10 次(?左右?)提交。
我认为这不再有效。我再也看不到“草拟新版本”按钮了。
P
Peter Mortensen

创建标签

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 当你制作一个标签时,它指向最新的提交,所以之后。
k
kjdion84

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

所以现在就做git push --tags


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

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

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

例子:

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

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

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

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


谢谢@officialrahulmandal。这正是我所需要的。
P
Peter Mortensen

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

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

制作标签的人

标签的制作日期

标签的消息

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


N
Nesha Zoric

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

如果要创建带注释的标签,以显示额外的元数据,可以通过以下方式进行:git tag -a v1.0.0。

另一方面,轻量级标签用于为您的提交“添加书签”以供私人使用:git tag v1.0.0。

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

列出标签 - git tag -l -n3。该命令列出所有现有标签,标签消息最多为 3 行。默认情况下 -n 只显示第一行。

标签详细信息 - git show 。它显示了您需要了解的有关特定标签的所有信息。

排序标签 - git tag --sort=

发布标签 - git push origin v1.0。您可以单独 git push 标签,也可以运行 git push --tags 一次推送所有标签。

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


S
Suresh Maidaragi

使用源树

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

打开 source_tree 选项卡 右键单击出现在左侧导航部分的 Tag 中的 Tag 部分 单击 New Tag() 出现一个对话框以添加标签和删除标签 单击从给定名称到标签的添加标签(代码的首选版本名称) 如果您想要在远程推送 TAG,同时创建 TAG ref:第 5 步提供复选框将 TAG 推送到原点,选中它,推送标签出现在远程存储库中您可以稍后通过右键单击创建的 TAG 来执行此操作,单击 Push to origin。


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

要创建 git 标签,您可以通过替换标签的实际名称来简单地运行 git tag <tagname> 命令。以下是有关管理 git 标签基础知识的完整教程:https://www.drupixels.com/blog/git-tags-create-push-remote-checkout-and-much-more