如何删除一个远程标签?

如何删除一个已经推送的Git标签?

解决办法

你只需要推送一个'空'引用到远程标签名称。

git push origin :tagname

或者,更明确地说,使用--delete选项(如果你的git版本比1.8.0老,则使用-d)。

git push --delete origin tagname

注意,git有标签命名空间和分支命名空间,所以你可以为一个分支和一个标签使用同一个名字。如果你想确保不会意外地删除分支而不是标签,你可以指定full ref,这样就不会删除分支。

git push origin :refs/tags/tagname

如果您还需要删除本地标签,请使用。

git tag --delete tagname

背景

推送一个分支、标签或其他参考文献到远程版本库时,需要指定"哪个版本库、什么源、什么目的地?&quot。

git push remote-repo source-ref:destination-ref

一个真实的例子是,你把你的主分支推送到原点的主分支。

git push origin refs/heads/master:refs/heads/master

由于默认路径的关系,可以缩短为。

git push origin master:master

标签的工作方式也是如此。

git push origin refs/tags/release-1.0:refs/tags/release-1.0

这也可以缩短为:

git push origin release-1.0:release-1.0

通过省略源引用(冒号前的部分),你把'什么都没有推到目的地,删除远程端的引用。

评论(9)

一个更直接的方法是

git push --delete origin YOUR_TAG_NAME

IMO前缀冒号的语法在这种情况下有点怪异

评论(5)

如果你有一个远程标签v0.1.0要删除,而你的远程是origin,那么只需。

git push origin :refs/tags/v0.1.0

如果你还需要在本地删除该标签。

git tag -d v0.1.0

参见Adam Franco'的回答,了解Git'不寻常的:删除语法的解释。

评论(5)