Я не настолько опытен с Git, и теперь у меня есть большая проблема, падающая на мои колени.Undoing git merge
Вот как моя текущая ветвь выглядит следующим образом:
feature /---F1-----F2----\
/ \
master -----M0-----M1-----M2-----M3-----M4
\ /
bugfix \--B1-----B2-----------/
Ситуация:
Кто-то сделал очень плохую вещь и подтолкнул очень плохой слияние (M3). Я заметил только плохое слияние, когда наши модели (а не исходный код) не загрузились после того, как я объединил B1 и B2 в M4. К счастью, я еще не нажал M4.
Проблема:
Как установить все правильно еще раз? Я хочу M0, M1, M2, F1, F2, B1 и B2. Но я не хочу M3 и M4 (поскольку M4 явно сломан). Если я есть отказаться от изменений, затем F1 и F2 может быть принесена в жертву :)
Я смотрел на git revert
, но я не уверен, что я полностью понимаю, как это работает. Итак ... Я действительно надеюсь на помощь в решении этого.
Заранее спасибо.
Да, вроде, «функция», «мастер» и «багфикс» на самом деле не ветви, я подозреваю, что это смущает. То есть, 3 ppl совершают собственные изменения основной ветви. Один парень сделал плохое слияние и толкнул. Я вытащил плохое слияние. Теперь я хочу, чтобы исключить плохое слияние, сохраняя при этом все индивидуальные изменения ... – aberrant80
Итак, 'feature' и' bugfix' не являются ветвями? Конечно, автор 'feature' имеет филиал в своем собственном репо. Что вам нужно сделать, так это сбросить мастер на M2 и попросить автора 'feature' сделать то же самое (но убедитесь, что он не потерял функцию ветки) и повторить слияние, правильно на этот раз. Посмотрите мое обновление, если вы хотите сделать это сами. – Gauthier
У вас действительно есть репо без ветви 'master'? – Gauthier