"нет ветки" в подмодуле git - PullRequest
0 голосов
/ 08 июня 2018

Я работаю над git-проектом, опираясь на подмодуль git, указывающий на устаревший коммит, который нельзя использовать для основного проекта.После успешного обновления основной ветви этого подмодуля до коммита, который я хотел бы использовать, извлеченного из внешнего репозитория, я возвращаюсь к родителю подмодуля основного проекта и выдаю git submodule update, так как я понял, что это правильноспособ сообщить родителю об обновлении.Однако, если я теперь вернусь в папку субмодуля, я вижу, что я включен (нет ветки), которая все еще является ветвью старого неиспользуемого коммита.В подмодуле я вижу обновленную ветку master до версии, которую я хотел бы использовать.Это заставляет меня думать, что мне не удалось правильно обновить субмодуль до моего предпочтительного коммита.Или я не должен обновлять субмодуль из основного проекта?

Спасибо!

1 Ответ

0 голосов
/ 08 июня 2018

Это простая ошибка:

После успешного обновления основной ветки этого подмодуля до коммита, который я хотел бы использовать, полученного из внешнего репозитория, я возвращаюсь к родителю подмодуля., основной проект,

Пока хорошо, но потом:

и выпуск git submodule update

Нет: это приводит к подмодулювернуться к записанному старому снимку.

После того, как субмодуль перейдет в нужное состояние, вы хотите вернуться в суперпроект, как вы это сделали, и выполнить:

git add path/to/submodule

Thisобновляет ваш индекс / промежуточную область так же, как git add копирует обычный файл в ваш индекс.

В конце концов, когда все файлы и хэши субмодулей верны, вы должны запустить git commit, чтобы сделатьновый коммит.Новый коммит сохраняет новый моментальный снимок, который включает новый хэш-идентификатор для подмодуля, который должен находиться в режиме «без ветвления / отсоединенного HEAD» всякий раз, когда этот коммит является одним из извлеченных.

Обратите внимание, что, в отличие от обычных файлов, проверка фиксации не помещает субмодуль в правильную фиксацию;это только git submodule update, что делает это.

...