我有一个场景,其中基础项目由java代码和网站文件(jsp/html/javascript、模板、css、图像等)组成。
创建此基础项目的变体的原因如下:
a) 白标+定制
b) 基于此项目的新项目,但有附加功能(在 java 和 web 文件中)
基地项目
java
web
项目A(基于基地)
java
源代码/核心
src/projectA 特定文件夹
web
模板
css
javascript
images
项目A特定文件夹
项目B(基于基地)
java
src/core
src/projectB 特定文件夹
web
模板
css
javascript
images
ProjectB 特定文件夹
重要限制
a) 项目和项目共享基础项目中的大量代码
b) 除了拥有自己的文件和代码之外,ProjectA 和 ProjectB 还可以添加、修改或删除 web/template、web/css、web/image 文件夹中的文件 - 用于定制和白标签
c) 将来可以创建更多项目,如项目和项目
d) 当基础项目发生更改时,应该可以将更改反映到子项目中
e) 有时,项目 A/项目 B 中对公共文件所做的更改应折叠回基础项目中。
最初,我以为我将为基础项目和每个项目 A、B 等拥有单独的 git 存储库。但特别要记住上述限制,在我看来,git 子树或子模块方法都不起作用(由于明显的限制)
因此,我倾向于拥有一个存储库并使用“分支”方法,其中projectA和projectB将是分支,而base将是“主”。约束 (e) 在这种方法中效果如何?
在 git 中是否有更好的管理方法?
你的方法是base
分支和每个子项目的分支听起来很合理。
然后就可以结帐了base
and cherry-pick
您需要从子项目中合并的提交(约束 e)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)