【发布时间】:2016-05-13 15:12:58
【问题描述】:
我们有一个 CMS 系统,目前使用这个工作流程:
- 我们有一个用于整个 CMS 的 github 存储库
- 每个分支代表网站,主分支是我们开发新功能的地方 - 这有几个优点(我们可以比较网站,版本升级只是合并,CMS 版本是可维护的)
- 我们也将站点特定的文件夹存储在 git 上,因为这些文件夹也需要版本控制
我的第一个问题是,您对此工作流程有何看法?这是完全错误的方式吗?
但是我们在这个工作流程中存在一些问题。
- 当我们使用 git merge(主 -> 站点)升级新版本时,站点特定的文件夹也会被合并,而不仅仅是核心 CMS 文件。我可以在合并之后(和提交之前)恢复/重置它,但这不是我最喜欢的解决方案,有点复杂。
- 有时我们为站点开发新功能,完成后,我们将其合并到主站点,以用于以后的新版本。在这种情况下,在版本升级合并后,我们可以在 git 历史记录中看到所有特定于站点的提交。我知道 git 就是这样工作的,这只是一个小问题,但有点烦人。
在阅读了 SO 之后,我有一些解决它的计划:
- 核心 CMS 文件和站点特定文件夹的单独存储库
- Git 子模块解决方案 - 我还不清楚,但也许这是一个更好的解决方案
- 使用 .gitattributes 文件和站点特定文件夹的“merge=ours”配置 - 但如果我知道正确,这仅适用于合并在给定目录中存在冲突的情况。
- 其他?
那么您对这个案例有什么建议? 我希望你的情况很清楚。 感谢您的帮助:)
亚当
【问题讨论】:
标签: git version-control merge content-management-system workflow