如何将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?