适用于Sitecore的最佳Git工作流程

时间:2019-02-06 22:41:46

标签: git sitecore bitbucket atlassian-sourcetree git-flow

Sitecore是我公司使用的内容管理系统。我们有三种环境:开发,阶段和生产。我们的大多数开发工作都使用BitBucket和SourceTree(使用gitflow工作流)。

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

一个是开发人员,他们创建功能分支以处理某些功能并将其集成到开发分支中。 其他人是在临时站点上创建动态内容的高级用户。动态内容无处不在,因此无法隔离它。

因此,在部署过程中,我们必须经历一个痛苦的过程,将开发人员所做的更改与阶段的更改进行合并,以使其可以进行部署。是否有任何git工作流程可以适用于这种情况?谢谢!

1 个答案:

答案 0 :(得分:1)

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

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

1)经理获取日历并定义日期:功能冻结,开发人员冻结,内容冻结,发布。

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

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

4)做测试和编辑。

5)释放。

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

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