如何将多个已创建的标签添加到特定提交中? (GIT)

How to add multiple already created tags into specific commit? (GIT)

我面临的问题是我想为特定提交(最后一次或历史记录)使用更多标签。 例如,我希望提交包含标签:“v1.2”和“Release”或“XF-update”。

第一步是创建和推送标签:

我可以创建标签:

git tag v1.2
git tag Release
git tag XF-update

我可以推它们(为了安全每个都分开):

git push remote v1.2
git push remote Release
...

或一起

git push --tags

注意:标签 Release 或 XF-update 只会被推送一次,不会再被推送,它们将在许多地方的分支中重复使用。所以我想说我想用相同的标签标记许多提交。所以一个月后,我将只创建新标签“v1.4”,不再创建 XF-update 标签,但仍想使用该标签进行提交。

第二步是提交更改:

第三步应该是在历史中已经创建的标签和提交之间建立联系。

这就是问题所在。我不知道如何对 git 说使用散列“xxxxxxxxxxxxxxxxxxxxxxxxxxx”提交的内容应该使用标签“v1.2”以及标签“XF-update”(已经创建和推送)进行标记。 我可以想象即使在不同的步骤中也能做到:

有什么建议吗? 我正在使用 fork 并且在 GUI 中我无法手动单击它,所以我需要使用集成在那里的 git bash 。 (写几行没什么大不了的,就是不知道这个具体步骤应该是什么)

谢谢!

就个人而言,我将标签视为提交的标签

要向特定提交添加标签,我 git checkout 提交并创建我的标签

git checkout xxxxxxxxxxxxxxxxxxxxxxxxxxx
git tag v1.2
git tag XF-update

如果tag已经被使用,我之前将其删除,这是我用来删除的命令:

  • 本地 git 标签:git tag -d <tag_name>
  • 远程 git 标签:git push --delete origin <tag_name>

你的问题比较混乱,因为你一直在两个不同的事物之间来回跳转:

  1. 向单个提交添加多个标签。这很容易,您已经使用示例命令完成了。您可以使用 git tag new_tag existing_tag 创建一个指向与另一个标签相同的提交的标签,或者指向您知道散列的提交,例如git tag new_tag abc123def
  2. 将多个 提交 添加到单个 标签。这是不可能的,因为那不是标签。标签是一种在您的历史记录中查找特定提交的方法——最常见的用途是标记稳定版本,这样您就可以始终知道“此提交是发布为 v1.2.3 的版本”。您可以在大多数使用提交哈希的地方使用标签名称,因为它专门指向一次提交。

听起来您正在寻找的是某种可以应用于一组提交的标签, 这些提交创建之后。显然有一个名为 git notes which allows you to add free text notes to existing commits. I don't know anything more about it, but it might be usable for your use case. (Hat tip to jthill 的设施用于指出它的存在。)