无法删除远程 Git 标签。

3

我正在尝试删除远程标签。我得到了矛盾的答案 - "标签不存在",然后是"标签已被删除",但是当我检查时,标签仍然存在。这里有一个类似的问题(git push标签错误的含义:“删除不存在的引用。”),但在我的情况下没有帮助。 谢谢

% git --version 
git version 2.11.0
% git ls-remote 2>/dev/null | grep amirk|grep '\.72$'
68a1595db91fca0cc1fa24566e9e7173fcd05c5e    refs/tags/Forked_branch_amirk/test-10.0.0.72
% git push origin :refs/tags/Forked_Branch_amirk/test-10.0.0.72 
remote: warning: Deleting a non-existent ref.
To <my-remote-git-repo>
- [deleted]               Forked_Branch_amirk/test-10.0.0.72
% git ls-remote 2>/dev/null | grep amirk|grep '\.72$'            
68a1595db91fca0cc1fa24566e9e7173fcd05c5e    refs/tags/Forked_branch_amirk/test-10.0.0.72
3个回答

2
“删除不存在的引用”表示该引用不存在,但“git ls-remote”输出表明它存在。此时有两个显而易见的选项:
  • 标签确实存在,但拼写方式与显示的略有不同,例如分支名称中包含一些不可见字符;或者
  • “push”操作未发送到与“ls-remote”相同的服务器,例如您定义了单独的fetch和push URL,或者当前分支设置了除“origin”以外的远程。
后者似乎更有可能。要检查,请运行“git config --get branch.$(git symbolic-ref --short HEAD).remote”,确保当前分支的远程确实是“origin”;如果是,则运行“git remote show origin”或“git remote show -n origin”。

我检查了选项1,拼写是正确的。但是,我忘记提到一个可能可以更好地解决问题的事情:对于我推送的每个标签,我都能看到另一个类似这样(带有向上箭头和打开/关闭花括号)的标签:1629064fcf60677bedaa3278e742d3964b887de9 refs/tags/Forked_branch_amirk/test-10.0.0.72^{}。 - Amir Katz
勾选了选项2并且它的起源。另一个数据点 - 我在另一台Linux上尝试了它(该Linux有一个较旧的git版本,2.7.4),并成功地从远程删除了标签(它也使用^{}删除了标签)。我还验证了我的~/.gitconfig文件不是问题所在,所以也许这个bug在git 2.11.0中? - Amir Katz
1
^{}的意思是标记为annotated标签,第一个值(没有后缀)是标签对象的哈希值,第二个值是被标记的对象的哈希值(通常是提交)。所以这部分是正常的。删除操作仅出现在Git 2.11.0中失败,这表明了Git 2.11.0中存在一个bug。我刚刚升级了我的Mac并使用了2.11.0版本,而我通常使用的机器上运行的是2.10.1版本,因此我还没有体验过2.11.0版本。 - torek

1

目前还不清楚为什么标准语法 (git push origin :refs/tags/tagname) 在我的系统上无法工作。 但是这里有一种可行的替代语法:

git push --delete origin Forked_branch_amirk/test-10.0.0.36

根据 http://stackoverflow.com/users/1256452/torek(提供了有用的输入)和我的测试,似乎是 git 2.11.0 中的一个错误。它发生在 Ubuntu 14.04 上,但可能也会在其他操作系统上发生。 - Amir Katz

1

如果一个 tag 有对应的 release,则无法删除它。它默认是禁用的。

要删除已经存在对应发布的标签,请按照以下步骤进行:

  • 进入您的 Github 代码库并转到 code 选项卡。
  • 进入 releases(右侧)。
  • 从发布中使用标签删除相应的 release
  • 进入 tags,并删除标签。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接