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