С помощью Git, как лучше всего объединить поддерево с внешним проектом, у которого есть подмодули? - PullRequest
4 голосов
/ 14 марта 2009

Я использую Git-репозиторий для всего, что связано с разрабатываемым веб-сайтом. В репозитории хранятся все файлы, относящиеся к сайту, включая документацию, макеты, оригинальные многослойные изображения и т. Д., А также материалы корневого веб-каталога, которые я поместил в подкаталог www.

Я нахожусь в точке, где я хочу начать интеграцию CMS, которую я выбрал для использования с остальной частью проекта; CMS - это проект с открытым исходным кодом, который также управляется с помощью Git (и размещается на GitHub, если это имеет значение). Очевидно, что CMS должен находиться в подкаталоге www, но это будет не единственное, что там будет - будут CSS-файлы, изображения, шаблоны для CMS и т. Д. И т. Д. Из-за этого я выбрал использование стратегии слияния поддеревьев для добавления внешнего проекта в мой репозиторий. Поскольку в какой-то момент я могу захотеть изменить исходный проект и внести изменения обратно, я клонировал репозиторий CMS из GitHub и произвел слияние поддерева с моего клона.

Проблема в том, что внешний проект (т.е. для CMS) имеет подмодули, которые я хочу включить. Как лучше всего убедиться, что подмодули интегрированы в основной проект? Нужно ли выполнять слияние поддеревьев для каждого подмодуля?

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

Ответы [ 2 ]

5 голосов
/ 20 августа 2009

Более простой способ слияния поддеревьев (и последующего повторного разделения, чтобы вы могли отправлять исправления в восходящем направлении) - это попробовать экспериментальный инструмент git поддерево .

1 голос
/ 14 марта 2009

Git подмодули содержат определенную проверку другого проекта и не обновляются автоматически. Таким образом, самый простой способ обработки подмодулей вашей CMS может состоять в том, чтобы отслеживать репо, из которых они пришли, как удаленные филиалы. Таким образом, вы можете получать информацию об изменениях в проектах, из которых вышли субмодули.

Использование объединения поддеревьев усложняет (возможно, привередливое - правильное слово) для отправки изменений обратно в проект CMS; возможно, это может быть написано в сценарии, если вы собираетесь отправить много изменений обратно.

...