Подмодуль git не работает после удаления
У меня есть проект с установленным подмодулем.
Коллега случайно удалил целевую папку и вместо нее сделал символическую ссылку (указав вне папки проекта), совершив ее.
Теперь я больше не могу восстановить субмодуль, даже после удаления ссылки и создания пустого каталога.
.gitmodule и .git/config не изменились.
git subodule add и git subodule init ничего не делают.
Я не могу вернуть проблемную фиксацию, потому что она также содержит много других изменений.
Как это можно зафиксировать?
Ответы
Ответ 1
Вам необходимо восстановить каталоги, поскольку они были сохранены в вашем репо перед изменением.
Повторное создание корневого каталога подмодулей не будет работать.
Что будет работать:
git checkout [email protected]{2 days ago} -- path/to/submodule/directory
(если вы знаете, что подмодуль работал, например, 2 дня назад)
Это восстановит пустой каталог, который на самом деле является специальной записью в индексе.
Затем a git submodule update --init
восстановит его содержимое.
Ответ 2
Решением было удаление целевого каталога подмодуля и повторное добавление подмодуля:
git rm libs/routing
git submodule add ../librouting.git libs/routing