При дальнейшем тестировании я обнаружил, что проблема в том, что git требователен к порядку параметров, и это очень сбивает с толку.
Чтобы добавить подмодуль, который должен следоватьветвь, вы должны использовать
git submodule add --branch $branchName $remoteURI $modulePath
Важная вещь выше - то, что --branch не может быть в конце .Я понятия не имею, почему.
Это создает файл .gitmodules, который включает
branch = $branchName
, на который указывают многие другие ответы.Но они не дают понять, что это отдельно от обычного процесса отслеживания веток git.Когда вы опускаете субмодуль, он не будет подключен к ветке, если вы вставите компакт-диск в папку субмодуля, поэтому он выглядит , как то, что branch = dev
не удалось, и ничего не стоит.
Однакофактический рабочий процесс заключается в том, что в git есть совершенно другой механизм обновления подмодулей до последних по их веткам, если вы используете branch = $branchName
.Очень запутанно.
Вместо того, чтобы идти
cd $modulePath
git pull
, как , почти каждая инструкция говорит , вы используете совершенно другую команду для обновления ваших подмодулей.
git submodule update --remote
(это может быть отфильтровано к определенному подмодулю, если хотите).
И после того, как вы это сделаете, ваш подмодуль будет находиться в ГОЛОВКЕ этой ветви , но , если вы перейдете в$ modulePath, он по-прежнему будет говорить только хеш коммита вместо имени ветви, потому что он манипулирует этим извне, используя систему подмодулей вместо обычного рабочего процесса отслеживания git.