【发布时间】:2011-07-04 21:59:09
【问题描述】:
我有一个场景,其中基础项目由 java 代码和网站文件(jsp/html/javascript、模板、css、图像等)组成。
创建此基础项目的变体的原因如下:
a) 白标+定制
b) 基于此项目的新项目,但具有附加功能(在 java 和 web 文件中)
基础项目
爪哇
- src/核心
网络
模板
css
javascript
图片
项目 A(基于基础)
爪哇
src/核心
src/projectA 特定文件夹
网络
模板
css
javascript
图片
projectA 特定文件夹
项目 B(基于基础)
爪哇
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 中是否有更好的管理方法?
【问题讨论】:
标签: git