无法删除远程服务器中的git标记

无法删除远程服务器中的git标记,git,git-tag,Git,Git Tag,我正在尝试删除遥控器中的标记。我得到了相互矛盾的答案——“标签不存在”和“标签被删除”,但当我检查时,标签仍然存在。这里有一个类似的问题(),但对我的情况没有帮助。 谢谢 %git--版本 git版本2.11.0 %git ls remote 2>/dev/null | grep amirk | grep'\.72$' 68a1595db91fca0cc1fa24566e9e7173fcd05c5e参考/标签/分叉分支/测试-10.0.0.72 %git推送原点:参考/标记/分叉分支/标记/测试

我正在尝试删除遥控器中的标记。我得到了相互矛盾的答案——“标签不存在”和“标签被删除”,但当我检查时,标签仍然存在。这里有一个类似的问题(),但对我的情况没有帮助。 谢谢

%git--版本
git版本2.11.0
%git ls remote 2>/dev/null | grep amirk | grep'\.72$'
68a1595db91fca0cc1fa24566e9e7173fcd05c5e参考/标签/分叉分支/测试-10.0.0.72
%git推送原点:参考/标记/分叉分支/标记/测试-10.0.0.72
远程:警告:删除不存在的引用。
到
-[删除]分叉分支/测试-10.0.0.72
%git ls remote 2>/dev/null | grep amirk | grep'\.72$'
68a1595db91fca0cc1fa24566e9e7173fcd05c5e参考/标签/分叉分支/测试-10.0.0.72
删除一个不存在的ref”表示它不在那里,但是
git ls remote
输出表示它在那里。在这一点上,两个明显的选择是:

  • 标记在那里,但拼写与显示的不同,例如,分支名称中有一些不可见的字符,或者
  • push
    ls-remote
    不在同一台服务器上,例如,您定义了单独的获取和推送URL,或者您当前的分支设置了一个非
    源站的远程URL

后者似乎更有可能。要进行检查,请运行
git config--get branch.$(git symbolic ref--short HEAD).remote
,以确保当前分支的remote确实是
源代码
;如果是这样,请运行
git remote show origin
git remote show-n origin

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

git push --delete origin Forked_branch_amirk/test-10.0.0.36

我选择了选项1,拼写很好。但是,我忘了提到(这可能会进一步说明问题)对于我推的每个标记,我都会看到另一个这样的标记(带有向上箭头和开/关花括号):1629064fcf60677bedaa3278e742d3964b887de9 refs/tags/Forked_branch_amirk/test-10.0.0.72^{}选中选项2及其来源。另一个数据点-我在另一个Linux(它有一个较旧的git版本,2.7.4)上尝试了它,并且能够成功地从远程删除标记(它还删除带有^{}的标记)。我还验证了我的~/.gitconfig文件不是问题所在,因此可能是git 2.11.0中的错误。
^{}
表示标记是带注释的标记,第一个值(不带后缀)是标记对象的散列,第二个值是标记对象的散列(通常是提交)。所以那部分是正常的。只有Git2.11.0时删除失败的事实确实意味着Git2.11.0中存在一个bug。我刚刚升级了我的Mac,得到了2.11.0,我在我通常使用的机器上运行2.10.1,所以我还没有2.11.0的经验。根据(谁提供了有用的输入)和我的测试,这似乎是git 2.11.0中的一个bug。它发生在Ubuntu 14.04上,但也可能发生在其他操作系统上。
git push --delete origin Forked_branch_amirk/test-10.0.0.36