Как добавить файлы в Git по пути к предыдущему субмодулю?
У меня есть проект, который содержал подмодуль, по пути mysubmodule
, Я установил последнюю версию Git из исходного кода (1.8.3-rc2) и запустил git submodule deinit mysubmodule
, Затем я удалил .gitmodules
файл и совершил изменение. Я также удалил .git
каталог из mysubmodule
папка.
Я хотел бы зафиксировать файлы из mysubmodule
в мой репо прямо сейчас, но Git говорит, что нет никаких изменений. Если я наберу git add mysubmodule
это ничего не делает. Если я наберу git add mysubmodule/file.txt
это говорит fatal: Path 'mysubmodule/file.txt' is in submodule 'mysubmodule'
Я также обнаружил, что если вы посмотрите свежую версию репо, он создает mysubmodule
каталог, несмотря на отсутствие .gitmodules
файл. И работает git submodule init
дает вам No submodule mapping found in .gitmodules for path 'mysubmodule'
ошибка.
Как это исправить?
1 ответ
Мерзавец еще думаю mysubmodule
является подмодулем, поскольку он записывается в индекс с помощью специального режима "160000".
Смотрите " Обновление подмодуля git нужно только изначально?"
Чтобы проверить это, как в этом ответе, вы можете сделать:
$ git ls-tree HEAD mysubmodule
160000 commit c0f065504bb0e8cfa2b107e975bb9dc5a34b0398 mysubmodule
Это не зависит от наличия .gitmodule
файл или на содержание mysubmodule
,
Вы должны сначала удалить эту запись из индекса:
git rm --cached mysubmodule
Тогда вы можете продолжить.