如何删除已推送的Git标记?
当前回答
对于乌龟数字用户,在数百个标记的范围内,您可以使用UI一次删除多个标记,但UI隐藏在上下文菜单下。
从资源管理器窗口右键单击->浏览引用->右键单击ref/remotes/name->选择“删除远程标记”
看见https://tortoisegit.org/docs/tortoisegit/tgit-dug-browse-ref.html
其他回答
您可以将“空”引用推送到远程标记名:
git push origin :tagname
或者,更明确地说,使用--delete选项(如果git版本早于1.8.0,则使用-d):
git push --delete origin tagname
注意,git具有标记名称空间和分支名称空间,因此您可以对分支和标记使用相同的名称。如果要确保不会意外删除分支而不是标记,可以指定full ref,该ref将永远不会删除分支:
git push origin :refs/tags/tagname
如果还需要删除本地标记,请使用:
git tag --delete tagname
出身背景
将分支、标记或其他引用推送到远程存储库涉及指定“哪个repo、哪个源、哪个目标?”
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
通过省略源ref(冒号之前的部分),可以将“nothing”推送到目标,删除远程端的ref。
如果您有一个远程标签v0.1.0要删除,并且您的远程标签是源,那么只需:
git push origin :refs/tags/v0.1.0
如果您还需要在本地删除标记:
git tag -d v0.1.0
有关Git异常的解释,请参见Adam Franco的回答:删除语法。
要删除远程存储库上的标记,可以使用
git push <remote> :refs/tags/<tagname>
解释上述内容的方法是将其读取为空值,即冒号被推送到远程标记名称之前的值。
在终端上,执行以下操作:
git fetch
git tag
git tag -d {tag-name}
git push origin :refs/tags/{tag-name}
现在转到Github.com并刷新,它们就会消失。
更直接的方法是
git push --delete origin YOUR_TAG_NAME
在这种情况下,IMO前缀冒号语法有点奇怪
推荐文章
- Bower: ENOGIT Git未安装或不在PATH中
- Bitbucket上的Git:总是要求密码,即使上传了我的公共SSH密钥
- Git别名-多个命令和参数
- 如何添加一个“打开git-bash这里…”上下文菜单到windows资源管理器?
- 我如何合并一个git标签到一个分支
- 是否可以在Git中只提取一个文件?
- 当我做“git diff”的时候,我怎么能得到一个并排的diff ?
- 在git中如何将提交移动到暂存区?
- 如何缩小。git文件夹
- 如何在本地删除分支?
- 找到包含特定提交的合并提交
- Windows上Git文件的权限
- 如何从一个枝头摘到另一个枝头
- 如何获得在两次Git提交之间更改的所有文件的列表?
- 什么是跟踪分支?