git: Как оформить заказ на определенную (последнюю) версию в конкретном подмодуле (используя подмодуль git ...) - PullRequest
0 голосов
/ 27 июня 2018

Итак, у меня есть репо с кучей подмодулей в нем. Я хочу обновить только один из них, но я хочу обновить его до последней фиксации, которая, как я знаю, находится в конце ветки с именем origin / mybranch. Подмодуль, который я хочу обновить, это mysubmodule (например)

Сначала я попробовал это:

git submodule update --remote -- mysubmodule 

Это было что-то вроде катастрофы, так как казалось, что он извлекал последнюю ветку origin / master (которой уже давно).

Итак, я прочитал некоторые из git docs, похоже, это поведение по умолчанию - достаточно справедливо!

Но как мне извлечь удаленный коммит, который имеет происхождение ветви / mybranch?

Я пробовал что-то вроде:

git submodule update --remote --checkout mybranch -- mysubmodule 
git submodule update --remote --checkout origin/mybranch -- mysubmodule 

Но мне пока не удалось выяснить это: (

1 Ответ

0 голосов
/ 07 августа 2018

Вы можете установить опцию branch для своего подмодуля, чтобы отслеживать ветку подмодуля, к которой вы хотите быть в курсе. Это подразумевает изменение в файле .gitmodules.

git config -f .gitmodules submodule.<path>.branch <branch>

* 1006 Е.Г. *

git config -f .gitmodules submodule.mysubmodule.branch mybranch

Как только вы настроите это, в следующий раз, когда вы запустите git submodule update --remote..., в подмодуле git извлечет коммит, на который указывает ваша ветвь (последний коммит в вашей ветке).

Это можно установить при добавлении подмодуля:

git submodule add -b <branch> <repository> [<path>]
...