我在主分支上创建了一个名为v0.1的标签,如下所示:

git tag -a v0.1

但后来我意识到,在0.1版的master中还需要合并一些更改,所以我就这么做了。但是现在我的v0.1标签被粘在了错误的提交上(引用便利贴的类比)。我希望它卡在主节点上的最近提交上,但它却卡在主节点上的第二个最近提交上。

我如何移动它到最近提交的主?


当前回答

如果你使用github并且想要更改发布(例如你发现创建发布后不提交smth)。你可以使用

git push origin :refs/tags/<tagname>

在这个命令之后,github删除你的标签,你的发布将成为草稿。这意味着您可以重新创建释放并选择提交。您的文件和您的消息将被保存。

其他回答

对git标签使用-f选项:

-f
--force

    Replace an existing tag with the given name (instead of failing)

您可能希望将-f与-a结合使用,以强制创建一个带注释的标记,而不是无注释的标记。

例子

在按之前,请删除任何遥控器上的标签 Git push origin:refs/tags/<tagname> 替换标记以引用最近的提交 Git标签-fa <tagname> 将标签推到远端原点 Git push origin master——tags

如果你使用github并且想要更改发布(例如你发现创建发布后不提交smth)。你可以使用

git push origin :refs/tags/<tagname>

在这个命令之后,github删除你的标签,你的发布将成为草稿。这意味着您可以重新创建释放并选择提交。您的文件和您的消息将被保存。

使用git标记-d <tagname>删除它,然后在正确的提交时重新创建它。

更准确地说,你必须强制添加标签,然后用option——tags和-f push:

git tag -f -a <tagname>
git push -f --tags

如果期望的最终结果是更新远程上已经存在的标签的内容:

Git checkout <tag_name> 提交您的更改 Git标签-f <tag_name> Git push -f origin <tag_name>