协慌网

登录 贡献 社区

如何删除 git 远程标签?

你如何删除已被推送的 git 标签?

答案

您只需要将 “空” 引用推送到远程标记名称:

git push origin :tagname

或者,更--delete ,使用--delete选项(如果你的 git 版本早于 1.8.0,则使用-d ):

git push --delete origin tagname

如果您还需要删除本地标记,请使用:

git tag --delete tagname

背景

将分支,标记或其他引用推送到远程存储库涉及指定 “推送何处,什么来源,什么目的地?”

git push where-to-push 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

通过省略源 ref(冒号前的部分),将'nothing' 推送到目标,删除远端的 ref。

更简单的方法是

git push --delete origin YOUR_TAG_NAME

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

如果要删除远程标记v0.1.0 ,并且远程是origin ,那么只需:

git push origin :refs/tags/v0.1.0

如果您还需要在本地删除标记:

git tag -d v0.1.0

请参阅Adam Franco的答案 ,解释 Git 的不寻常:删除语法。