我在主项目中有一个子项目。我想跟踪子项目中的文件,而不仅仅是更改。
文件/目录结构类似于
mainproj:
所以如果我推送mainproj git忽略subproj中的文件。显式添加Subtest.java会出错
git add subproj/Subtest.java
fatal: Path 'subproj/Subtest.java' is in submodule 'subproj'
有没有一种简单的方法可以告诉git将子模块视为常规目录?
答案 0 :(得分:0)
我不这么认为。子模块是单独的git存储库,git知道它们被不同的存储库跟踪并忽略它们。父存储库仅跟踪子模块的位置以及它所处的提交。
要更新子模块的更改,您需要转到该文件夹并创建一个分支(子模块,最初是无头的)进行更改并将它们提交到子模块的存储库 - 根据需要进行推送。然后,返回主存储库,需要进行提交以更新子模块现在提交的知识。
使用子模块时,这是一个很好的参考:Git Submodules: Adding, Using, Removing, Updating。