跟踪子模块/子项目中的文件

时间:2013-02-27 15:16:30

标签: git

我在主项目中有一个子项目。我想跟踪子项目中的文件,而不仅仅是更改。

文件/目录结构类似于

mainproj:

  • 的.git
  • Test.java
  • subproj
    • 的.git
    • Subtest.java

所以如果我推送mainproj git忽略subproj中的文件。显式添加Subtest.java会出错

git add subproj/Subtest.java

fatal: Path 'subproj/Subtest.java' is in submodule 'subproj'

有没有一种简单的方法可以告诉git将子模块视为常规目录?

1 个答案:

答案 0 :(得分:0)

我不这么认为。子模块是单独的git存储库,git知道它们被不同的存储库跟踪并忽略它们。父存储库仅跟踪子模块的位置以及它所处的提交。

要更新子模块的更改,您需要转到该文件夹​​并创建一个分支(子模块,最初是无头的)进行更改并将它们提交到子模块的存储库 - 根据需要进行推送。然后,返回主存储库,需要进行提交以更新子模块现在提交的知识。

使用子模块时,这是一个很好的参考:Git Submodules: Adding, Using, Removing, Updating