Как вести разработку сильно разнящихся проектов в git?
Ситуация такова. На некотором этапе присоединился к одному существующему проекту. Изначально разработка функциональности велась в одном хранилище git , затем появилась необходимость для нового клиента сильно урезать функциональность и изменить множество разных файлов, типы подкючений к разным СУБД и т.д.
Целевые проекты в итоге сильно отличаются друг от друга.
В основной ветке функциональность расширяется, а в частной ветке клиента эти файлы вообще не должны появляться.
Как вести разработку и вести учёт изменений?
Сложно синхронизировать изменения.
Пока что решил держать в основной ветке полную версию, а в ветке того клиента держать файл скрипта, убирающий некоторую функциональность. Так до тех пор, пока всё не будет разделено на модули.
Это не проблема Git, это проблема архитектуры вашего приложения. При нормальной реализации должно быть общее ядро и клиентозависимые расширения, а для поставки клиента собираться в единое целое тем или иным образом.
То, как вы сейчас делаете, похоже на реализацию двух разных приложений. Если хотите продолжать -- разделите хранилища, как вам уже предложили.