Привет!
Хочу исправить последствия своих кривых рук.
Есть репа с N ветками. Разработка веласть во всех ветках и время от времени сливалась воедино. Однако, вместо того, чтобы мёржить, я пушил и пуллил. В итоге история разработки выглядит херово. Если смотреть по gitk, то вместо красивых веток и горизонтальных связей между ними присутствует какое–то спагетти. Можно ли это исправить? Скажем, экспортировать каким–то образом все коммиты, начиная с первого, а потом руками накатывать по порядку, разбавляя их мёржами. Коммитов всего штук 20, это не должно быть трудно. Подскажите рецепт?
В гите много инструментов для такого... самый правильный, пожалуй git rebase -i ......
Либо сделать ветку от одного из начальных коммитов, когда все еще хорошо было, и мержить в нее коммиты из "грязной" постепенно с ключом --squash. Или cherry-pick.
Либо патчи сгенерировать git format-patch --stdout HEAD > file.patch
Всё попробовал. Накатывать патчи не получилось, т.к. я не смог заставить git создавать и удалять файлы. Squash-мёрджи и cherry-pick тоже как-то не приглянулись: первый требовал оформлять коммиты, второй не может тянуть из удалённой репы. Rebase скорее всего подошёл бы, но я решил провернуть это со стопроцентным контролем: создал пустую репу, в исходной репе поочерёдно чекаутил коммиты по историям и копировал файлы в свежую репу. Профит. Спасибо!