Я получаю подмодуль git (принятие желаемого за действительное?), и я придумываю более конкретные вопросы, что является хорошим знаком...
Я попытался найти ту версию подмодуля, на которую ссылается суперпроект, в .gitmodules
и .git/config
, но там ничего не упоминается...
Сценарий заключается в том, что я изменяю подмодули в своих корневых местах (откуда они импортируются), а затем потянув их туда, где они "подмодулированы"...
Помимо того, что для совершения суперпроекта для включения этих изменений в репроект суперпроекта, мне также нужно сделать "git update
", чтобы зарегистрировать новый, потянутый в подмодулирование?
В основном возникает вопрос:
Мне нужно "git submodule update
" только тогда, когда я сначала клонирую суперпроект, или после каждого вытягивания подмодуля (из собственного репо)?
Спасибо
Ответ 1
Как уже упоминалось в предыдущем ответе git submodule update
, эта команда проверяет конкретную версию проекта, основываясь на файле .gitmodules
.
Страница GitPro настаивает:
Это важный момент для подмодулей: вы записываете их как точную фиксацию theyre at.
Вы можете видеть, на какую фиксацию ссылается запуск в "суперпроекте" (тот, который ссылается на один или несколько подмодулей):
-
git submodule status
(за исключением случаев, когда вы совершили какое-либо действие непосредственно в этом подмодуле, в случае тонкой обработки он покажет "+
" перед SHA-1
HEAD
любого подмодуля, который продвинулся из SHA-1
хранится в суперпроекте) или
-
git ls-files --stage
ищет запись в режиме "160000", специальную запись в индексе Git.
Это означает, что каждый раз, когда вы выполняете команду Git в "суперпроекте", который может изменить этот субмодуль, совершить SHA1, вам понадобится "git submodule update
".
Нужно ли мне обновлять подмодуль "git" только тогда, когда я сначала клонировал суперпроект, или после каждого вытягивания подмодуля (из собственного репо)?
Да, вы должны делать это каждый раз, когда вы снижаете изменение подмодуля в главном проекте.
Это связано с тем, что вы ссылаетесь на точный фиксатор исходного репозитория подмодуля (как сказано выше), и когда вы вытягиваете это репо, вы эффективно изменяете эту фиксацию.