我在Git中有很多相互依赖的项目 这些项目中的每一个都解决了不同的问题,并且对应于不同的git存储库 最后,我的项目架构最终会有很多继承,我想分解重复的条目。
简而言之,我的项目层次结构可以这样查看:
Project 1
Project 2
\
- Project 1
Project 3
\
- Project 1
Project 4
\
- Project 2
- Project 3
所以Project 1
被重复(关于Project 4
)作为Project 2
和Project 3
的子模块。
此外:在Eclipse中,我只能导入Project 1
一次,所以我必须选择,然后可能必须更新依赖项(例如Eclipse ADT的Android插件,库项目的硬编码路径,使用相对路径:s)。
更糟糕的是,对我导入的项目所做的更改,修改了导入它的存储库,以便进行同步'工作区,我必须提交修改,然后推送它们并将它们拉到第二个无法导入项目的存储库中。
有没有人能解决这样的问题? 我想要的是这样的:
aFolder
\
- Project 1
- Project 2 --> has submodule Project 1
- Project 3 --> has submodule Project 1
- Project 4 --> has submodule Project 2 and Project 3
这样,Project 2
和Project 3
指向同一个存储库,然后在Eclipse中只导入一次并始终同步。
不幸的是,git不允许使用路径../mySubmodule
创建子模块,因为../
在存储库之外...
答案 0 :(得分:0)
我有类似的需求,不得不重组我的存储库。
我使用Visual Studio而不是eclipse,所以我想澄清我使用的术语。
在VS中,“解决方案”由1 +“项目”和配置内容(如依赖项)组成。 “项目”是生成dll或exe的单元的集合。
存储库的布局如下所示:
solution "Solution 1" [repository]
-> project "Project 1" [submodule]
solution "Solution 2" [repository]
-> project "Project 1" [submodule]
-> project "Project 2" [submodule]
(dependency "Project 2" depends on "Project 1" is stored directly in "Solution 2")
solution "Solution 3" [repository]
-> project "Project 1" [submodule]
-> project "Project 3" [submodule]
(dependency "Project 3" depends on "Project 1" is stored directly in "Solution 3")
solution "Solution 4" [repository]
-> project "Project 1" [submodule]
-> project "Project 2" [submodule]
-> project "Project 3" [submodule]
(dependency "Project 2" depends on "Project 1" is stored directly in "Solution 4")
(dependency "Project 3" depends on "Project 1" is stored directly in "Solution 4")
所以你最终会得到两倍的存储库:
存储库,包含代码和“holder”存储库,包含依赖项和代码作为子模块。