一尘不染

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

git

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


阅读 261

收藏
2022-01-10

共1个答案

一尘不染

您可以将“空”引用推送到远程标记名称:

git push origin :tagname

或者,更明确地使用该--delete选项(或者-d如果您的 git 版本早于 1.8.0):

git push --delete origin tagname

请注意,git 具有标记命名空间和分支命名空间,因此您可以对分支和标记使用相同的名称。如果您想确保不会意外删除分支而不是标签,您可以指定永远不会删除分支的完整引用:

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

通过省略源引用(冒号之前的部分),您将“无”推送到目标,删除远程端的引用。

2022-01-10