我们有大量的客户端都有类似的站点,目前它们都配置有自己的应用程序文件夹,这些文件夹将覆盖系统级文件。由于更改的剧烈性质,进行覆盖似乎不再是理想的解决方案,相反,我想转向更多的“样板”类型的解决方案。我想到的工作流程如下:
有一个主“样板”,将标有我们公司的名称,即“完全加载”的包、所有可能的功能等。
对于每个客户端,我们将拥有该样板的新克隆,其中包含其所有特定于客户端的更改(不同的视图、图像、模型、配置等)。
每当我们在主样板上添加新功能、修复错误或提高性能时,我想将这些更改推送/拉取到每个客户端。注意:我喜欢这样一个事实,即每个客户端都需要自己的推/拉,这样如果我们不想,我们就不会被迫一次更新所有客户端。这使我们能够一次处理一个客户的潜在问题。如果需要安全推送,我可以编写一个脚本来进行批量推送/拉取。
我担心的是,每次对客户端克隆进行推/拉操作时,我都必须每次都处理冲突,因为客户端存储库上的更改可能存在于任何文件中。
我很想知道人们对处理这种情况的最佳方式有何看法。我对 git 的有限了解告诉我,分支是一个坏主意,而且由于每个克隆所需更改的性质,我认为子模块是不可能的。我已经阅读了一些关于 git rerere 的内容,但不确定这些冲突是否足够可预测以使其有效。
提前感谢您的任何建议,我真的很高兴能离开 svn 并切换到这种类型的设置,我认为这将大大提高我们的生产力和开发时间!