如何将Git中的文件添加到以前的子模块的路径中?

我有一个用于包含子模块的项目,路径为mysubmodule 。 我从源代码(1.8.3-rc2)安装了最新的Git,并运行了git submodule deinit mysubmodule 。 然后我删除了.gitmodules文件并提交了更改。 我也从mysubmodule文件夹中删除了.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'错误的No submodule mapping found in .gitmodules for path 'mysubmodule'

我该如何解决?


Git仍然认为mysubmodule是一个子模块,因为它以特殊模式“160000”记录在索引中。
请参阅“最初只需要git子模块更新?” 为更多。
要检查,如在这个答案中,你可以做一个:

 $ git ls-tree HEAD mysubmodule 
 160000 commit c0f065504bb0e8cfa2b107e975bb9dc5a34b0398  mysubmodule 

这并不取决于存在.gitmodule文件,或在内容mysubmodule

您需要先从索引中删除该条目:

 git rm --cached mysubmodule

然后你可以继续。

链接地址: http://www.djcxy.com/p/16461.html

上一篇: How do I add files in Git to the path of a former submodule?

下一篇: Unable to track files within Git submodules