2013-02-27 54 views
1

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

文件/目录结构看起来像

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的处理子模块作为常规目录?

+0

我找到了一个解决方案。这是假的子模块。 “git add subproj /”(使用斜杠)会忽略.git并跟踪其内容而不是添加子模块。 – marchtemp 2013-05-26 04:54:44

回答

0

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

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

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