Git: Как «отменить» слияние

Ситуация: Начиная с Мастера в A , я разветвился и внес некоторые изменения в B , затем снова объединил эту ветвь в (C) . После внесения еще нескольких изменений я был на D , но обнаружил, что мне нужно развернуть код без изменений, которые произошли в ветке. Если бы я вручную не объединил его, все было бы хорошо.

A_______C___D
 \     /
  \_B_/

Во-первых, я хотел бы знать, что я должен был сделать отсюда, чтобы развернуть код, как если бы слияния никогда не было. Примечание: ни один из тех же файлов, которые редактировались в ветке, не редактировался в мастере.

Во-вторых ...

У меня не было времени придумать лучший способ справиться с этим, поэтому я удалил файлы, добавленные веткой, и вручную отменил несколько изменений, внесенных в ветку, затем зафиксировал результат для развертывания ( F )

A_______C___D___F
 \     /
  \_B_/

Я хочу иметь возможность продолжать разработку ветки и объединять любые изменения из мастера в нее, чтобы сохранить ее обновлен, но если я сделаю это, то то, что я сделал для создания F , будет объединено и вызовет удаление файлов и отмену изменений. Как лучше всего с этим справиться?

16
задан Jake 14 December 2010 в 00:21
поделиться