我有一个基础网站项目,我用它作为几个客户的起点。每个客户都可以对我不想包含在基础项目中的项目进行特定更改。但是,有时将特定客户功能包含在基础项目中并推送给所有其他客户(例如错误修复)是有意义的。
现在我已经使用 TFS 设置了项目,因此每个客户都是基础项目的一个分支。它通过将基础的更改合并到每个分支中来工作,但这是一个非常缓慢的过程。我想切换到git(在github上),这样我就可以在本地执行这些操作并减少花费在这些操作上的时间。
在阅读了大量文章之后,这些是我目前的结论:
- 在我的场景中,Git 分支将无法正常工作。我需要为每个项目使用不同的文件夹,这样我就可以同时运行这些站点。
- 将基本代码“子模块”到每个客户存储库中似乎不是正确的解决方案,因为 base 不是项目中的子文件夹,它“就是项目”。
- Cherrypicking 变更集需要将基础遥控器添加到客户项目中,并且看起来很复杂(到目前为止我还无法使其工作)
据我所知,我应该为每个新客户创建一个新的存储库,最初从基础复制代码,并创建补丁以在项目之间移动更改(我不关心历史)。我可能可以接受这种方法,特别是如果我可以创建一个自动化流程的工具。
有人可以告诉我我是否走在正确的轨道上,以及我应该如何理想地添加新网站(请记住,工作流程应该适用于多个开发人员)。
提前致谢