首页 > 解决方案 > Git 子模块和包

问题描述

我是 git 子模块的新手。

我的项目中有以下结构:

src/main/com/feature1
src/main/com/feature2
src/main/com/feature3
src/main/com/commonFeature

我的测试结构相同,但在以下包下:

src/test/com/feature1 ...

由于包“commonFeature”是我想为其他项目重用的东西,我想为它创建一个 git 子模块。我正在考虑以下选项来重新组织我的包结构:

src/main/com/commonFeature/main/
src/main/com/commonFeature/test/

或者

src/commonFeature/main
src/commonFeature/test

然后我会像以前一样保留我的其他包项目:

src/main/com/feature1 ....

不知道什么是最好的方法。有人可以帮忙吗?

谢谢!

标签: javagitpackagegit-submodules

解决方案


关于您的问题的一些注意事项:

src/main/com/commonFeature/main/
src/main/com/commonFeature/test/

与您的初始存储库的描述不一致,因此您可能必须修复许多损坏的链接。

src/commonFeature/main
src/commonFeature/test

这也是不一致的,并且在没有任何额外知识的情况下,/main/com/它是与第一个一样好的替代方案。

看到在这两种情况下,您都必须修复很多链接,您应该以不同的方式思考问题。

不能在 git 存储库的根目录中添加 git 子模块。这会迫使您将所有公共库移动到新文件夹。如果是这种情况,只需像这样考虑您的新文件夹:

/._
  |_ /.git
  |_ /main
  |_ /test

您必须将其添加到当前的某个位置,具体取决于 , ,/src/main含义/com。无论如何,您都必须修复损坏的链接。

保留当前树并拥有另一个存储库的替代方法是在同一目录中克隆两个存储库。这很棘手,并且是对 SubModules 造成的限制的一种解决方法。


推荐阅读