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