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" только когда я сначала клонирую суперпроект или после каждого извлечения подмодуля (из его собственного репо)?

Да, вы должны делать это каждый раз, когда вы вносите изменения субмодуля в основной проект.
Это потому, что вы ссылаетесь на точный коммит, в котором находится исходное репо подмодуля (как сказано выше), и когда вы извлекаете этот репо, вы эффективно модифицируете этот коммит.

Другие вопросы по тегам