Как поменять «стартовый» коммит ветки git-репозитария?
Подскажите, пожалуйста, по такой проблеме.
В git-репозитарии от ветки develop (коммит AAA) была создана ветка test. Как таковых изменений в ветке не было. После этого, к ветке develop были применены несколько коммитов - BBB, CCC, DDD. Своевременный rebase/merge ветки test сделан не был и в ветку test был отправлен коммит EEE.
Ветки develop и test на том этапе стали отличаться ровно на три пропущенных коммита - BBB, CCC, DDD. И все бы относительно неплохо, но вот только пришло время сливать ветку test с веткой develop, а из-за недостающих коммитов сделать это возможным не представляется - сотни файлов конфликтуют, решить конфликты возможным не представляется (была смена окончаний строк, "решать" надо все файлы целиком).
Возможно ли сейчас (спустя десятки коммитов как в ветку develop, так и в ветку test) сделать так, чтобы ветка test брала свое начало не с коммита AAA, а с коммита DDD? Тогда все проблемы со слиянием веток уйдут. Сделать это у меня не выходит, абсолютно запутался с командами с git rebase и git cherry-pick.
PS. Изменения были отправлены на удаленный репозитарий по всем веткам. В качестве "резервного" варианта для себя оставил создание новой ветки, на которую накатывать вручную патчами все изменения ветки test
Не совсем понял в чём проблема, сливаете ветку develop в ветку test, те файлы которые были затронуты в коммите EEE обрабатываете вручную, остальные автоматически. После этого сливаете ветку test в develop.
Проблема в том, что десятки коммитов поверх веток сделаны и в итоге в конфликты слишком много выходит. Вот как вы предложили, конечно, конфликтов поменьше дает, но все равно много. За идею спасибо, но если есть возможность поменять "стартовый" коммит - было бы замечательно.
была смена окончаний строк, "решать" надо все файлы целиком
А что если попробовать на коммите "EEE" ветки "test" сделать коммит "FFF", который по своей сути будет "Fix CRLF to LF" то есть содержать просто конвертацию строк кода проекта в LF. А потом соответственно попытаться слить ветки "test" и "develop" снова? Тогда конфликтов с окончаниями строк быть не должно.