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