@aarifkhamdi

Как сделать хитрый reset с сохранением коммитов?

Есть ветка 1 и ветка 2.

Мне нужно сохранить все коммиты в ветке 2, но чтобы она точно соответствовала ветке 1.

По сути это git reset --hard, но при этом нужно сохранить коммиты. Мне бы каким-то магическим образом вычислить все изменения, которые нужно сделать в ветке 2, чтобы получить ровно такое же состояние, какое сейчас в ветке 1. И сделать новый коммит в ветку 2, чтобы получить состояние как в ветке 1.

Потыкался, но ничего не придумал
  • Вопрос задан
  • 50 просмотров
Пригласить эксперта
Ответы на вопрос 1
jcmvbkbc
@jcmvbkbc
http://dilbert.com/strip/1998-08-24
Мне бы каким-то магическим образом вычислить все изменения, которые нужно сделать в ветке 2, чтобы получить ровно такое же состояние, какое сейчас в ветке 1. И сделать новый коммит в ветку 2, чтобы получить состояние как в ветке 1.

$ git checkout branch2 # перейти к ветке branch2
$ git reset --hard branch1 # скопировать в неё историю и текущее состояние ветки branch1
$ git reset --soft HEAD@{1} # восстановить историю ветки branch2, но не трогать текущее состояние
$ git commit -m 'magic commit' # закоммитить текущее состояние (равное разности branch2 -> branch1) в branch2
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
АКМЭ сервис Санкт-Петербург
от 170 000 до 200 000 ₽
ГК «РусПерсонал» Нижний Новгород
от 2 500 до 3 500 $
vStack Санкт-Петербург
от 90 000 ₽