Как вернуть ветку мастера в тег в git?
У нас есть происхождение и развитие ветвей.
Начальное состояние мастера было помечено как tag_ABC
.
У нас мало изменений, внесенных в отрасль разработки и перенесенных в исходное состояние.
Затем мы случайно слились, развиваясь в мастера и подталкиваясь к происхождению.
Теперь мы хотели бы вернуть мастеру на контрольную точку tag_ABC
. Как мы можем это сделать?
Ответы
Ответ 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