如何在Git中添加文件到以前的子模块的path?
我有一个项目,用来包含一个子模块,在pathmysubmodule
。 我从源代码(1.8.3-rc2)安装了最新的Git,并运行git submodule deinit mysubmodule
。 然后,我删除了.gitmodules
文件并提交了更改。 我也从mysubmodule
文件夹中删除了.git
目录。
我想直接从mysubmodule
提交文件到我的mysubmodule
,但是git说没有任何改变。 如果我inputgit add mysubmodule
它什么都不做。 如果我inputgit add mysubmodule/file.txt
它说: fatal: Path 'mysubmodule/file.txt' is in submodule 'mysubmodule'
我还发现,如果您查看新版本的回购,它会创build一个mysubmodule
目录,尽pipe没有.gitmodules
文件。 并运行git submodule init
给你一个No submodule mapping found in .gitmodules for path 'mysubmodule'
错误。
我该如何解决?
Git仍然认为mysubmodule
是一个子模块,因为它是以特殊模式“160000”logging在索引中的。
请参阅“ 最初只需要git子模块更新? ”以获取更多信息。
要检查, 在这个答案 ,你可以做一个:
$ git ls-tree HEAD mysubmodule 160000 commit c0f065504bb0e8cfa2b107e975bb9dc5a34b0398 mysubmodule
这并不取决于.gitmodule
文件的存在,也不取决于.gitmodule
的内容。
您需要先从索引中删除该条目:
git rm --cached mysubmodule
然后你可以继续。