Sitecore的最佳Git工作流



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

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

一种是开发人员创建一个功能分支来处理一些功能和开发分支中的集成。其他人是在创建动态内容的临时站点上工作的超级用户。动态内容无处不在,因此无法将其隔离

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

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

要解决这个问题,请将两个字段分开——这可以通过在gitflow上应用时间约束来实现(对于git模式来说,这似乎是一个不错的选择)。你保守的发布方式会看起来像这样:

1) Manager获取日历并定义日期:功能冻结、开发冻结、内容冻结、发布。

2) 开发人员添加功能直到功能冻结,然后进行集成测试并完成版本工作直到开发冻结。在那之后,你可以确信这个版本在开发方面不会再改变了。

3) 然后,内容人来了,他们做他们的魔术,直到内容冻结。通常,这不应干扰正确开发和测试的cms的功能。

4) 进行测试和编辑。

5) 释放。

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

关于内容分离:当你说你很难将功能与内容合并时,这里还有另一个问题:内容不应该干扰编程功能,尤其是在内容管理系统中。如果是这样的话,你要么需要更多地将开发者和用户分开,要么——更好的方式——让他们更多地相互交谈。定义整合双方的流程,使其在组织上不可能通过合作来进行冲突的创造。如果可能的话,让他们坐在一起。根据谁在处理密切相关的主题来更换座位。至少要定期(每天)召开团队会议,并在这些会议之间进行对话。缩短你的时间框架(谈论里程碑之间的微小工作,而不是整个事情的更大压力…)。

最新更新