Sitecore 的最佳 Git 工作流程

Best Git workflow for Sitecore

Sitecore 是我公司使用的内容管理系统。我们有三个环境:Dev、Stage 和 prod。我们将 BitBucket 与 SourceTree(使用 gitflow 工作流)用于我们的大部分开发工作。

我们 运行 遇到为 Sitecore 应用相同流程的问题,因为有两种不同类型的人对网站进行更改。

一种是创建功能分支以处理某些功能并集成到开发分支中的开发人员。 其他人是在创建动态内容的暂存站点上工作的高级用户。动态内容无处不在,没办法隔离。

因此,在部署期间,我们必须经历一个痛苦的过程,将开发人员所做的更改与阶段中的更改合并,以便为部署做好准备。是否有适用于此类场景的 git 工作流程?谢谢!

这不是 git 而是组织问题。您不能让开发人员从事生产工作(即使用动态实时数据),也不能在开发站点上生产。您一定浪费了大量时间来解决合并冲突。

要解决这个问题,请将两个字段分开 - 这可以通过在 gitflow 上应用时间限制来实现(这对于 git 模式来说似乎是一个不错的选择)。保守的发布方式将如下所示:

1) 经理拿起日历并定义日期:功能冻结、开发冻结、内容冻结、发布。

2) 开发人员添加功能直到功能冻结,然后进行集成测试并完成版本工作直到开发冻结。之后您可以确定该版本不会再在开发方面发生变化。

3) 然后内容人员来施展他们的魔法,直到内容冻结。通常这不会影响正确开发和测试的 cms 的功能。

4) 进行测试和编辑。

5) 发布。

但是,更好的是: 对于像 cms 这样具有敏捷潜力的东西,这是一个相当漫长的过程。如果您想进行更多的持续集成,请不要使用 gitflow,不要使用离散版本:从生产分支,开发单个功能,测试,合并,错误修复;内容也一样。这里的时间范围:最多几小时到几天,越短越好。由于 master 变更的紧迫时间框架与两个离散版本之间的巨大差异(google 敏捷开发,持续集成),合并冲突的可能性将很小。

关于内容分离的一句话:当你说你很难将功能合并到内容时,这里还有另一个问题:内容不应该干扰编程的功能,尤其是在内容管理系统中。如果是这样,您要么需要将开发人员和用户更多地分开,要么 - 更好的方法 - 让他们彼此更多地交谈。定义整合双方的流程,并在组织上不可能通过合作进行相互冲突的创作。如果可能,让他们坐在一起。根据谁在处理密切相关的主题来改变座位。至少定期(每日)召开团队会议,并创造在这些会议之间进行交谈的选项。把你的时间安排得很紧(谈论里程碑之间真正的小部分工作,而不是对整个事情施加更大的压力......)。