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

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