如何删除一个已经推送的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
推送一个分支、标签或其他参考文献到远程版本库时,需要指定"哪个版本库、什么源、什么目的地?"。
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
通过省略源引用(冒号前的部分),你把'什么都没有推到目的地,删除远程端的引用。
如果你有一个远程标签v0.1.0
要删除,而你的远程是origin
,那么只需。
git push origin :refs/tags/v0.1.0
如果你还需要在本地删除该标签。
git tag -d v0.1.0
参见Adam Franco'的回答,了解Git'不寻常的:
删除语法的解释。