我们的Git存储库中有几个带注释的标记。旧的标记具有虚假的消息,我们希望将其更新为新样式。

% git tag -n1
v1.0 message
v1.1 message
v1.2 message
v2.0 Version 2.0 built on 15 October 2011.

在这个例子中,我们想让v1。X消息看起来像v2.0消息。我们该怎么做呢?


当前回答

如果你使用的是像smartgit这样的GUI

在新消息的相同位置再次创建相同的标记 选择“覆盖现有标签” 强制将标记推送到上游存储库

其他回答

您将不得不再次标记,使用-f力标志。

git tag v1.0 -f -m "actual message"

我们想要得到v1。X消息看起来像v2.0消息

在Git 2.17(2018年第二季度)中,将有一种替代方法来创建一个新的标记,使用Git标签<标签名> <标签名> -f -m" <新消息>",因为“Git标签”学习了一个显式的“——edit”选项,允许通过“-m”和“-f”给出的消息被进一步编辑。

参见Nicolas morey - chaisemmartin (nmorey)的commit 9eed6e4(2018年2月6日)。 (由Junio C Hamano - gitster -在commit 05d290e, 2018年3月6日合并)

标签:添加——编辑选项 添加一个——edit选项,允许修改-m或-F提供的消息,就像git commit——edit所做的一样。

Git标签<标签名> <标签名>^{}-f -a

这是一种改进:如果没有^{},它将创建一个引用旧标记对象的新标记对象,其中它们将具有相同的标记名称。

<标签名称>^{}将解析标签/引用,直到找到第一个提交散列。

如果你使用的是像smartgit这样的GUI

在新消息的相同位置再次创建相同的标记 选择“覆盖现有标签” 强制将标记推送到上游存储库

git tag <tag name> <tag name>^{} -f -m "<new message>"

这将创建一个具有相同名称的新标记(通过覆盖原始标记)。