Вы говорите, что люди уже вытянули ветку релиза, поэтому вы не можете выполнить сброс.Это также означает, что вы не можете выполнить перебазирование - в любом случае, вы перемещаете ссылку без слияния и расстраиваете всех остальных.
Если вы хотите выбросить все наотпустите ветку (меня немного смущает M
) и сделайте ее идентичной мастеру (почему вы показываете *
?), вот что вы можете сделать:
git checkout master
git merge --strategy=ours release # merge in release, but keep master's contents
git checkout release
git merge master # fast-forward
You 'в итоге получим следующее:
X - Y- A - B - C - D - E ----- Z (master, release)
\ \ /
\ \ /
\ \ /
M --- BCDE --- N
При коммите слияния Z
все изменения будут отменены с момента выпуска;это просто для того, чтобы релиз двигался вперед.Из документации:
наша
Это разрешает любое количество головок, но результирующее дерево слияния всегда совпадает с деревом текущей ветки, эффективно игнорируя все изменения от всех остальныхветви.Он предназначен для замены старой истории развития боковых веток.
Это как раз ваша ситуация!
Также неплохо использовать опцию --no-commit
взатем выполните коммит вручную, чтобы у вас была возможность отредактировать сообщение и заметить, что вы сделали.