git push tag error的含义:"删除不存在的引用。"

时间:2014-04-11 02:57:52

标签: git

在对分支的头部进行一些更改后,我们需要移动释放标记。当我试图这样做时,我遇到了一个令人困惑的git错误消息,并要求知识渊博的人解释它。我可以找到许多类似消息的网页,但我看到的解释似乎都没有适用。请避免告诫我手册中讨论的理智与疯狂的方法,因为选择此方法的原因有外部原因,这对本次讨论无用。

我做了什么:

在本地和远程存储库中,我运行了" git tag -d Release_7_3_16"删除现有标记。我本地存储库中的git push / pull表示没有变化。 ' git tag'在本地或原始目录中显示标签不存在。

然后在我的本地存储库中运行" git -f -a Release_7_3_16" (因为我已经坐在正确的分支上)来(重新)在正确的变化下创建标签。

我尝试使用" git push origin:refs / tags / Release_7_3_16"将标签推送到遥控器,但它出现了此错误:

remote: warning: Deleting a non-existent ref.
To /db/sds14/user2/cg_sandbox/depot/cg_sandbox.git/
 - [deleted]         refs/tags/Release_c60_7_3_16

这实际意味着什么,因为我现在没有删除任何内容?!?

1 个答案:

答案 0 :(得分:2)

  

我尝试使用“git push origin:refs / tag / Release_7_3_16”将标签推送到遥控器

该语法特别是:name部分 - 意味着“请删除”遥控器。

来自遥控器的警告信息表示“我首先没有这个名字”。也就是说,您要求远程(origin,在这种情况下)删除refs/tag/Release_7_3_16,它认为它看起来像是一个合理的请求,所以它去找refs/tag/Release_7_3_16并发现它没有存在。

这并不奇怪,因为标签位于refs/tags/(复数“标签”),而不是refs/tag/(单数“标签”)。

至于在遥控器上移动标签,您可能需要阅读this answer