Это простая ошибка:
После успешного обновления основной ветки этого подмодуля до коммита, который я хотел бы использовать, полученного из внешнего репозитория, я возвращаюсь к родителю подмодуля., основной проект,
Пока хорошо, но потом:
и выпуск git submodule update
Нет: это приводит к подмодулювернуться к записанному старому снимку.
После того, как субмодуль перейдет в нужное состояние, вы хотите вернуться в суперпроект, как вы это сделали, и выполнить:
git add path/to/submodule
Thisобновляет ваш индекс / промежуточную область так же, как git add
копирует обычный файл в ваш индекс.
В конце концов, когда все файлы и хэши субмодулей верны, вы должны запустить git commit
, чтобы сделатьновый коммит.Новый коммит сохраняет новый моментальный снимок, который включает новый хэш-идентификатор для подмодуля, который должен находиться в режиме «без ветвления / отсоединенного HEAD» всякий раз, когда этот коммит является одним из извлеченных.
Обратите внимание, что, в отличие от обычных файлов, проверка фиксации не помещает субмодуль в правильную фиксацию;это только git submodule update
, что делает это.