Как мне вернуть основную ветку в тег в git? - PullRequest
73 голосов
/ 29 июля 2011

У нас есть филиалы происхождения и развития.Начальное состояние мастера было помечено как tag_ABC.

У нас есть несколько изменений, внесенных в ветку разработки и перенесенных в источник.Тогда мы случайно слились, развились в мастера и подтолкнули к возникновению.

Теперь мы хотим вернуть мастер к контрольной точке tag_ABC.Как мы можем это сделать?

Ответы [ 2 ]

141 голосов
/ 29 июля 2011

Вы можете сделать

git checkout master
git reset --hard tag_ABC
git push --force origin master

Обратите внимание, что это перезапишет существующую историю в репозитории в восходящем направлении и может вызвать проблемы у других разработчиков, у которых этот репо выписан.

56 голосов
/ 24 ноября 2015

Это не прямой ответ на вопрос, но эта страница возвращается при поиске способов возврата кода ветви к выпуску тега.

Другой способ - создать разность между текущим состояниемветвь и тег, к которому вы хотите вернуться, а затем примените это к ветви.Это сохраняет правильную историю версий и показывает, что изменения происходят и возвращаются снова.

Предполагается, что ваша ветвь называется master , а тег, к которому вы хотите вернуться, называется 1.1.1

git checkout 1.1.1
git diff master > ~/diff.patch
git checkout master
cat ~/diff.patch | git apply
git commit -am 'Rolled back to version 1.1.1'
git push origin master
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...