Подтвердить что ты не робот

Как вернуть ветку мастера в тег в git?

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

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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

Предполагая, что ваша ветка называется 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