Как добавить файлы в Git к пути бывшего подмодуля?


у меня есть проект, который раньше содержал подмодуль, по пути mysubmodule. Я установил последний Git из источника (1.8.3-rc2) и побежал git submodule deinit mysubmodule. Затем я удалил .gitmodules файл и зафиксировал изменение. Я также удалил С .

Я хотел бы зафиксировать файлы из mysubmodule в мое РЕПО прямо сейчас, но git говорит, что изменений нет. Если я наберу git add mysubmodule он ничего не делает. Если я наберу git add mysubmodule/file.txt он говорит:fatal: Path 'mysubmodule/file.txt' is in submodule 'mysubmodule'

у меня есть также обнаружено, что если вы проверяете свежую версию РЕПО, она создает , несмотря на отсутствие . И бежит git submodule init дает No submodule mapping found in .gitmodules for path 'mysubmodule' ошибка.

как это исправить?

1 56

1 ответ:

ГИТ все еще думаю mysubmodule является подмодулем, так как записывается в индекс со специальным режимом "160000".
Смотрите "обновление подмодуля git требуется только изначально?" дополнительные.
Чтобы проверить это, как в в ответ, вы можете сделать:

 $ git ls-tree HEAD mysubmodule 
 160000 commit c0f065504bb0e8cfa2b107e975bb9dc5a34b0398  mysubmodule 

Это не зависит от присутствия .gitmodule файл, или на содержание mysubmodule.

сначала нужно удалить эту запись из индекса:

 git rm --cached mysubmodule

затем вы можете продолжать.