当标签已存在于遥控器上时,Git强制推送标签

时间:2014-09-12 19:38:32

标签: git

我已将标签推入遥控器,当另一个用户创建相同的标签并尝试推送时,推送将失败,因为遥控器上已存在标签。

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

我想我必须这样做。

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

这是对的吗? Isnt force push标签应该解决这个问题吗?

我正在使用带注释的标签

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

感谢您的光临。

3 个答案:

答案 0 :(得分:34)

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

所以,当推送被拒绝时,我做了

git push --delete origin tagname 

并推送新标签。

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

答案 1 :(得分:13)

这将强制推送所有标签并覆盖现有标签。

git push -f --tags

答案 2 :(得分:0)

首先,删除远程中的所有标签:

git tag -l | awk 'BEGIN{ORS=" "}{print $0}' | xargs git push origin --delete

然后将所有标签推送到远程:

git push --tags