0

我面临的问题是我想为特定提交使用更多标签(最后一个或历史上的)。例如,我希望提交包含标签:“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 标签,但仍想使用该标签进行提交。

第二步是提交有关更改的内容:

  • 只是常规的代码更改并提交它们。注意:问题是在这种提交的情况下,我已经可以放置标签并推送它。但老实说,我更喜欢完成提交,将其推送到远程,然后在下一步开始将标签连接到特定的提交。

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

  • 历史上的提交我的意思是最后一次提交,或者一周前的提交(总是通过哈希 id)

这就是问题所在。我不知道如何对 git 说带有哈希“xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”的提交应该用标签“v1.2”和标签“XF-update”(已经创建和推送)进行标记。我可以想象即使在单独的步骤中也可以做到:

  • 将一个特定标签添加到一个特定提交
  • 将第二个特定标签添加到相同的特定提交
  • ……

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

谢谢!

4

2 回答 2

1

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

要将标签添加到特定提交,我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>
于 2021-04-14T00:03:47.980 回答
1

您的问题相当令人困惑,因为您一直在两个不同的事物之间来回跳跃:

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

听起来您正在寻找的是某种标签,您可以在创建这些提交之后将其应用于一组提交。显然有一个名为git notes的工具,它允许您向现有提交添加自由文本注释。我对此一无所知,但它可能对您的用例有用。(帽子提示jthill指出它存在。)

于 2021-04-14T09:04:34.377 回答