我们的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消息。我们该怎么做呢?
我们的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消息。我们该怎么做呢?
当前回答
您将不得不再次标记,使用-f力标志。
git tag v1.0 -f -m "actual message"
其他回答
您将不得不再次标记,使用-f力标志。
git tag v1.0 -f -m "actual message"
如果你使用的是像smartgit这样的GUI
在新消息的相同位置再次创建相同的标记 选择“覆盖现有标签” 强制将标记推送到上游存储库
要更新一个复杂的消息,只需用-a指定带注释的标记选项或用-s指定带符号的标记选项:
git tag <tag name> <tag name>^{} -f -a
这将打开一个包含旧标记消息内容的编辑器。
使用上面的答案(特别是Sungam的答案),这是.gitconfig的别名一行程序。替换现有标签并保留提交日期。
[alias]
tm = "!sh -c 'f() { export GIT_COMMITTER_DATE=$(git log -1 --format=%ci $0); git tag -f -a $0 $0^{}; }; f '"
改进吗?
git tag <tag name> <tag name>^{} -f -m "<new message>"
这将创建一个具有相同名称的新标记(通过覆盖原始标记)。