Git force push tag, когда тег уже существует на удаленном

У меня уже есть тег, перенесенный на пульт, и когда другой пользователь создаст тот же тег и попытается отправить его, произойдет сбой, поскольку тег уже существует на пульте.

Но я подумал, что если я сделаю --f принудительное добавление тега, это должно сработать. Но это не то, что я вижу.

Я думаю, что должен сделать это.

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

Это правильно? Разве принудительный push-тег не должен об этом позаботиться?

Я использую аннотированные теги с

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

Ответы

Ответ 1

В моем случае удаленное устройство отклоняло принудительное нажатие, когда тег уже существует.

Итак, когда толчок был отклонен, я сделал

git push --delete origin tagname 

и нажал новый тег.

Пожалуйста, см. Комментарий Торека к моему вопросу. Существует случай, когда удаленный может также отклонить удаление.

Ответ 2

Это заставит подтолкнуть все теги и перезаписать существующие.

git push -f --tags

Ответ 3

Во-первых, удалите все теги в удаленном:

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

затем нажмите все теги на удаленный:

git push --tags