1

我有一个在线 git 存储库,我和许多人一样使用它来跟踪我的程序。从我的目录树的根目录开始,它可以正常工作:

git add . 
git commit
git push origin master

有一天我发现我的树中的一个子目录变成了绿色(在 git 站点上)并且无法访问。现在我知道绿色用于子模块(即使我不明白这是什么意思),但我希望它是一个真正的目录,我可以在其中查看和下载那里的内容或检查修改。问题是,我怎样才能让这个目录再次变得正常,它的所有子目录和文件都在里面而不触及树内的其他目录?

谢谢

4

1 回答 1

2

这个想法是:

最后一个链接向您展示了如何取消引用子模块,同时,如果您愿意,可以保留在所述子模块中完成的提交的历史记录(但将它们合并回主仓库)

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

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

检查“ Git - 如何跟踪未跟踪的内容? ”的第二部分:“将其替换为纯内容”部分。

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

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

于 2012-09-09T07:41:45.303 回答