假设我正在编写同一软件/程序/应用程序/脚本的两个不同版本,并将它们存储在版本控制下。第一个版本是免费的“基本”版本,而第二个版本是付费的“高级”版本,它采用了免费版本的代码库,并在其上扩展了一些额外的增值功能。任何新的补丁程序,修补程序或功能都需要找到进入两个版本的方式。
我目前正在考虑使用master
和develop
分支作为主要代码库(免费版本),以及使用边master-premium
和develop-premium
分支作为付费版本。对免费版本进行更改并合并到master
分支(develop
当然,在进行了彻底的测试之后),develop-premium
通过cherry-pick
命令将其复制到分支以进行更多测试,然后合并到中master-premium
。
这是处理这种情况的最佳工作流程吗?有潜在的问题,警告或陷阱需要注意吗?是否有比我已经提出的更好的分支策略?
非常感谢您的反馈!
PS:这用于存储在Git中的PHP脚本,但是答案应适用于任何语言或VCS。