2014-09-12 176 views
11

我有一个标签已经推到远程,当另一个用户创建相同的标签并尝试推送时,推送将失败,因为标签已经存在于远程。Git force push tag当标签已经存在于远程时​​

但我想如果我这样做 - 强制标签推,它应该是工作。但那不是我所看到的。

我想我必须这样做。

Create tag 
Push tag -> If push fails -> Delete tag on remote 
          -> push tag again. 

这是正确的吗?不是强制推标签应该照顾这个?

我使用注释标签与

git -a v1.0 -f -m "message" 

感谢您寻找。

+1

你试过类似git push origin:refs/tags/tag_name来删除远程标签吗? – 2014-09-12 19:44:31

+0

通常情况下,您可以强制推送标签,但远程设备可能会禁止该标签。通常情况下,您可以删除遥控器上的标签,但遥控器也可以不允许使用。如果遥控器足够严格,则必须让某人直接访问以更新遥控器。另见http://stackoverflow.com/questions/19298600/tag-already-exists-in-the-remote-error-after-recreating-the-git-tag – torek 2014-09-12 20:03:38

+0

好的。我认为-f应该总是强制更新远程标签。我将使用删除操作并重新创建我添加的逻辑。感谢您的回应。 – user3606175 2014-09-12 20:27:10

回答

19

在我的情况下,当标签已经存在时,远程拒绝强制推送。

所以,当推被拒绝后,我做了

git push --delete origin tagname 

,推动了新的标签。

请参阅Torek对我的问题的评论。有一种情况,即远程也可以拒绝删除。

相关问题