LINUX.ORG.RU

Git: отменить вливание ветки, но сохранить последующие коммиты

 


0

1

Добрый вечер.

Есть ветка master, была ветка 'develop2'. Ветке develop2 на момент слияния было уже 3 месяца, а в ветку master вливались изменения. Но вот 2 недели назад ветку develop2 влили в ветку master, предварительно не влив master в develop2.

Теперь хочется отменить это вливание, но сохранить последующие коммиты.

Есть варианты сделать revert до коммита, а потом с cherry-pick подливать последующую кучу коммитов, но это долго и громоздко.

Может кто подскажет более оптимальные решения?

Благодарю за советы.



Последнее исправление: projdevel (всего исправлений: 1)

предварительно не влив master в develop2

Ну и что? Если ты думаешь что старый код из develop2 затрёт master то это не так.

сделать revert до коммита

Реверт делается на коммит. Любой. Т.е. просто сделай реверт на мердж и всё, больше ничего не надо.

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 1)

git позволяет сделать revert для ветки (но надо учитывать, что второй раз её смерджить будет нельзя, надо будет отменять revert)

при revert для ветки откатятся все комиты из ветки

pru-mike ★★
()
Последнее исправление: pru-mike (всего исправлений: 1)

Если вас устроит удаление мерж-коммита из истории (и push -f бранча master), то попробуйте git filter-branch.

Sorcerer ★★★★★
()

Я бы сделал с помощью cherry pick. Там вроде можно задать диапазон коммитов. И, конечно, нужно учитывать, что получится не с первого раза, т.е. иметь соответствующие резервные копии.

den73 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.