1

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

文件/目录结构看起来像

主项目:

  • .git
  • 测试.java
  • 子项目
    • .git
    • 子测试.java

因此,如果我推送 mainproj git 会忽略 subproj 中的文件。添加 Subtest.java 显式给出错误

git add subproj/Subtest.java

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

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

4

1 回答 1

0

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

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

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

于 2013-02-27T17:05:15.213 回答