将存储库添加到git树

将存储库添加到git树,git,git-submodules,Git,Git Submodules,我在网上有一个git存储库,我和许多人一样使用它来跟踪我的程序。它与我的目录树的根目录中的常规过程配合得很好: git add . git commit git push origin master 有一天,我发现我的树中的一个子目录变绿了(在git站点上),无法访问。现在我知道绿色代表一个子模块(即使我不明白这意味着什么),但我希望它是一个真正的目录,一个我可以查看和下载内容或检查修改的目录。问题是,我如何使这个目录恢复正常,它的所有子目录和文件都在里面,而不触及树中的其他目录 谢谢我们的

我在网上有一个git存储库,我和许多人一样使用它来跟踪我的程序。它与我的目录树的根目录中的常规过程配合得很好:

git add . 
git commit
git push origin master
有一天,我发现我的树中的一个子目录变绿了(在git站点上),无法访问。现在我知道绿色代表一个子模块(即使我不明白这意味着什么),但我希望它是一个真正的目录,一个我可以查看和下载内容或检查修改的目录。问题是,我如何使这个目录恢复正常,它的所有子目录和文件都在里面,而不触及树中的其他目录

谢谢

我们的想法是:

  • 克隆你的回购协议
  • git子模块更新--init--recursive
    :请参阅“”
  • 从子模块中删除并再次添加文件:请参阅“”
最后一个链接向您展示了如何取消对子模块的引用,同时,如果需要的话,保存在所述子模块中完成的提交的历史记录(但将它们合并回主repo)

现在,如果在尝试初始化子模块时,您收到以下消息:

No submodule mapping found in .gitmodules for path '...'
检查“”的第二部分:“将其替换为普通内容”部分

根本原因是当您尝试在主git repo工作树中添加一个本身就是git repo的目录时:

目录“
nested repo
”一开始是一个独立的Git存储库。
通常会忽略这些子存储库,但是如果您让git add显式添加它,那么它将创建一个指向子存储库头部提交的gitlink条目,而不是添加目录的内容
如果GitAdd拒绝创建这样的“半子模块”,那就太好了


概述的程序不起作用,可能是因为我犯了一些错误。我在执行第2点时得到这个。路径“python”的.gitmodules中未找到子模块映射,第3点出现相同错误。因为我试图删除/修改的内容没有exist@LuigiTiburzi请参阅我编辑的答案(这也解释了为什么您突然在GitHub repo中看到一个绿色目录)。问题是,即使是git rm--cached“path”也会给我错误,好像文件不存在一样。事实上,我没有任何.gitsubmodules…这正是我在尝试遵循您编辑的答案的第一步时遇到的错误致命:pathspec“python2.7/networking/”与任何文件都不匹配请原谅我的麻烦,现在我以某种方式完成了一些事情,或者至少我希望如此,当我运行git commit时,我只有一个问题——消息中的a“我的更改正在进行中,未进行提交”,我如何进行提交?Git add不工作。。。