Использование Git поддерева слияния с нескольких сайтов - PullRequest
5 голосов
/ 29 мая 2011

В моем проекте используется ряд сторонних библиотек. Я использую процедуру слияния поддерева, описанную в http://progit.org/book/ch6-7.html. Я хотел бы позволить другим разработчикам поддерживать библиотеки и периодически объединять обновления из репозиториев библиотеки, выполняя:

$ git checkout rack_branch
$ git pull

Есть ли способ опубликовать rack_remote и rack_branch, чтобы они были частью центрального хранилища, чтобы другие разработчики могли их использовать?

Ответы [ 2 ]

2 голосов
/ 30 мая 2011

Вероятно, вам следует задокументировать префикс, URL и ветвь для «восходящего потока» каждого поддерева в некоторой части документации вашего проекта.

Приведенные ниже примеры показывают, что эта информация часто записывается в ваш коммит слияния поддерева.сообщений, но это зависит от точного способа слияния и / или извлечения.


Рассмотрим начальное слияние поддерева, созданное с помощью следующих команд:

git merge --no-commit sub/master
git read-tree -u --prefix=sub sub/master
git commit

Сообщение коммита будетбыть следующим:

Merge remote-tracking branch 'sub/master'

Мы можем видеть, что пульт был назван sub, а ветвь была названа master, но мы не видим URL.Вы можете добавить URL-адрес к сообщению, выполняя фиксацию вручную на последнем шаге.

Позже вы можете использовать git pull для включения новых «восходящих» изменений:

git pull -Xsubtree=sub sub master

сообщение о фиксации по умолчанию будет содержать URL-адрес хранилища и имя ветви:

Merge branch 'master' of server:path/to/repository

С другой стороны, варианты первоначального слияния и последующих слияний относятся непосредственно к объектам фиксации, а не с использованием имени ветви (например,15dbbda вместо sub/master) предотвратит запись названия ветви;то же самое касается не записи URL, если кто-то решит извлечь из . remotes/sub/master вместо sub master.

0 голосов
/ 29 мая 2011

Рассматривали ли вы вместо этого субмодули ? Похоже, это будет соответствовать вашему рабочему процессу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...