Обновление подмодуля git - удалить против git pull
В чем разница между бегом
git submodule update --remote
против
cd <submodule directoy>
git pull
Предполагая, что субмодуль ранее был настроен для отслеживания некоторой ветви:
git submodule add -b master [URL to Git repo]
1 ответ
Решение
Разница в том, что:
git pull
обновит только вашу ветку субмодуля, но это может быть любая ветка, которую вы могли бы проверить сами в этом репо субмодуля.git submodule update --remote
будет обновлять только ветку, зарегистрированную в.gitmodule
и по умолчанию у вас получится отдельная ГОЛОВА, если только--rebase
или же--merge
указан или ключsubmodule.$name.update
установлен вrebase
,merge
или жеnone
,
В обоих случаях вам все равно придется вернуться к родительскому репо, добавить и зафиксировать новую ссылку подмодуля SHA1.
Это связано с тем, что в обоих случаях изменяется SHA1 подмодуля, что означает, что необходимо добавить и зафиксировать gitlink ( специальную запись в индексе родительского репо, названную в честь корневой папки подмодуля).