Вероятно, вам следует задокументировать префикс, 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
.