我有一个场景,其中基础项目包括Java代码和网站文件(jsp/html/javascript,模板,CSS,图像等).
由于以下原因,创建了此基础项目的变体:
a)白色标签+定制
b)基于该项目的新项目,但附加功能(包括java和Web文件)
基础项目
java
卷筒纸
模板
CSS
JavaScript的
图片
项目A(基于基础)
java
SRC /核心
src/projectA特定文件夹
卷筒纸
模板
CSS
JavaScript的
图片
projectA特定文件夹
项目B(基于基础)
java
SRC /核心
src/projectB特定文件夹
卷筒纸
模板
CSS
JavaScript的
图片
projectB特定文件夹
重要的限制
a)projectA和projectB都从基础项目中分享了相当多的代码
b)除了拥有自己的文件和代码外,ProjectA和ProjectB还可以添加,修改或删除web/templates,web/css,web/image文件夹中的文件 - 用于自定义和白色标签
c)将来可以创建更多项目,如projectA和projectB
d)当基础项目发生变化时,应该可以将更改反映在子项目中
e)有时,projectA/projectB对公共文件所做的更改应折叠回基础项目.
最初,我认为我将为基础项目和项目A,B等各自提供单独的git存储库.但是特别注意上述约束,我认为git子树或子模块方法都不起作用(明显的限制)
因此,我倾向于拥有一个单独的存储库并使用"分支"方法,其中projectA和projectB将成为分支,base将成为"主".约束(e)在这种方法中的效果如何?
有没有更好的方法来管理这个git?