2013-03-18 3 views
2

У меня есть проект с подмодулем. Коллега случайно удалил целевую папку и вместо нее сделал символическую ссылку (указав вне папки проекта), совершив ее.git subodule не работает после удаления

Теперь я больше не могу восстановить субмодуль, даже после удаления ссылки и создания пустого каталога. .gitmodule и .git/config не изменились. git subodule add и git subodule init ничего не делают.

Я не могу вернуть проблемную фиксацию, потому что она также содержит много других изменений.

Как это можно исправить?

ответ

3

Вам необходимо восстановить каталоги, поскольку они были сохранены в вашем репо до изменение.

Повторное создание корневого каталога подмодулей не будет работать.

Что будет работать это:

git checkout [email protected]{2 days ago} -- path/to/submodule/directory 

(если вы знаете, подмодуль работал 2 дня назад, например)

Это восстановит пустой каталог, который на самом деле является special entry в индекс.

После этого a git submodule update --init восстановит его содержание.

+0

Не работает для меня –

+0

@ didi_X8 ОК (он работал для меня). +1 к вашему решению. – VonC

1

Решение было удалить подмодуль целевой каталог и повторно добавить подмодуль:

git rm libs/routing 
git submodule add ../librouting.git libs/routing 
Смежные вопросы