Как я могу отследить несколько проектов в Git, которые используют общий код? - PullRequest
4 голосов
/ 30 марта 2011

Я разработал веб-сайт, который теперь должен быть клонирован для нескольких клиентов. Каждый клиент хочет настройки, которые выходят за рамки визуальных аспектов и не могут быть обработаны профилями, предпочтениями или чем-то подобным.

В этом сценарии я хотел бы создать главный репозиторий в Git с общим кодом, а затем по одной ветке для каждого клиента. Таким образом, я могу вносить индивидуальные изменения в каждый клиент (филиал), а также делиться общими изменениями (используя мастер).

Правильный ли этот подход? Есть ли другой способ справиться с этим, кроме удаленных веток?

Спасибо!

Ответы [ 2 ]

3 голосов
/ 30 марта 2011

Это будет работать.

Вы должны быть осторожны со слияниями - вы можете только объединять общий код с клиентским кодом, но вы можете выбирать отдельные изменения обратно от клиентов к общим.Вы также захотите выяснить, какова будет ваша политика в отношении переноса кода из общей ветви в ветви клиента - если кода клиентской ветви не слишком много, вам, возможно, будет лучше перебросить изменения вашего клиента поверх общей.код каждый раз, когда вы хотите обновить;с большим количеством изменений было бы намного легче объединить общий код.

Если вы выберете метод перебазирования, взгляните на git rerere, который поможет вам часто справляться с перебазированием.

1 голос
/ 30 марта 2011

Если ваш репозиторий структурирован так, что весь общий код находится в отдельном каталоге, это можно решить с помощью git-submodules.

Если это так, вместо этого все клиентские настройки находятся в своем собственном подкаталоге, я думаю , можно использовать стратегию слияния поддерева для элегантного решения этой проблемы.

...