将存储库添加到git树

时间:2012-09-08 19:11:07

标签: git git-submodules

我在线有一个git存储库,我可以像往常一样使用它来跟踪我的程序。它通过我目录树的根目录中的常规过程完成了所有工作:

git add . 
git commit
git push origin master

有一天,我发现树中的子目录已变为绿色(在git网站上),无法访问。现在我知道绿色是一个子模块(即使我不明白这是什么意思)但我希望它是一个真正的目录,我可以在那里查看和下载那些或检查修改。问题是,如何让这个目录再次恢复正常,其所有子目录和文件都在里面而不触及树内的其他目录?

谢谢

1 个答案:

答案 0 :(得分:2)

这个想法是:

最后一个链接显示了如何取消引用子模块,如果需要,可以保留在所述子模块中完成的提交的历史记录(但将它们合并回主存储库)

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

No submodule mapping found in .gitmodules for path '...'

检查“Git - how to track untracked content?”的第二部分:“将其替换为普通内容”部分。

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

  

目录“nested repo”最初是一个独立的Git存储库   通常这些子存储库被忽略,但如果你告诉git add显式添加它,那么它将创建一个gitlink条目,指向子存储库的HEAD提交,而不是添加目录的内容
  如果git add拒绝创建这样的“半子模块”,那可能会很好。