Основной вариант при использовании Git для управления базами кода в этом сценарии состоит в том, чтобы разветвляться от общей базы кода и затем поддерживать отдельные ветви для каждого клиента (и ограничивать фиксацию в этих ветвях клиентов для их конкретных компонентов). Все общие разработки должны происходить в основной ветке .
Затем, когда вы будете готовы создать кандидата на выпуск для определенного клиента, переключитесь на его branch
и выполните: git merge master
в филиале этого клиента.Это внесет все изменения из основной линии в ваш филиал для конкретного клиента.
Вы можете сделать rebase
вместо слияния.Но это менее выгодно, потому что это может усложнить поиск основной причины ошибки, если она всплывает в ветви клиента, которая не находится в ветви основной линии.Но либо merge
, либо rebase
в филиале клиента должны обеспечить хороший рабочий процесс для описанной вами ситуации.