git - Sitecore 的最佳 Git 工作流程
问题描述
Sitecore 是我公司使用的内容管理系统。我们有三个环境:Dev、Stage 和 prod。我们将 BitBucket 与 SourceTree(使用 gitflow 工作流程)一起用于我们的大部分开发工作。
我们在为 Sitecore 应用相同的流程时遇到了问题,因为有两种不同类型的人对网站进行更改。
一种是创建功能分支以处理某些功能并集成到开发分支中的开发人员。其他人是在创建动态内容的临时站点上工作的高级用户。动态内容无处不在,因此无法将其隔离。
因此,在部署期间,我们必须经历一个痛苦的过程,将开发人员所做的更改与阶段中的更改合并,以便为部署做好准备。是否有任何适用于这种场景的 git 工作流程?谢谢!
解决方案
这不是 git,而是组织问题。您不能让开发人员从事生产工作(即使用动态实时数据),也不能在开发站点上进行生产。您一定是在浪费大量时间来解决合并冲突。
为了解决这个问题,将两个字段分开——这可以通过在 gitflow 之上应用时间约束来实现(这对于 git 模式来说似乎是一个不错的选择)。您发布的保守方式将如下所示:
1) 经理抓起日历并定义日期:功能冻结、开发冻结、内容冻结、发布。
2)开发人员添加功能直到功能冻结,然后进行集成测试并完成版本的工作,直到开发冻结。之后,您可以确定版本不会再在开发方面发生变化。
3)然后来内容人员并发挥他们的魔力,直到内容冻结。通常这不应干扰正确开发和测试的 cms 的功能。
4)做测试和编辑。
5) 发布。
但是,更好的是:对于像 cms 这样具有如此敏捷潜力的东西,这是一个相当漫长的过程。如果您想进行更多的持续集成,请不要使用 gitflow,不要使用离散版本:从生产分支,开发单个功能,测试,合并,错误修复;内容相同。这里的时间范围:最多几小时到几天,越短越好。由于主版本更改的时间紧迫,而两个离散版本(谷歌敏捷开发、持续集成)之间的差异很大,合并冲突的可能性很小。
关于内容分离的一句话:当您说您很难将功能合并到内容时,这里还有另一个问题:内容不应干扰编程功能,尤其是在内容管理系统中。如果是这样,您要么需要更多地分离开发人员和用户,要么 - 更好的方式 - 让他们更多地相互交谈。定义整合双方的流程,使通过合作在组织上不可能产生冲突的创作。如果可能,让他们坐在一起。根据谁正在研究密切相关的主题来改变座位。至少定期(每日)召开团队会议,并创建在这些会议之间进行交谈的选项。让你的时间框架紧凑(谈论里程碑之间的真正小部分工作,而不是整个事情的更多压力......)。
推荐阅读
- spring-integration - 过滤从 http 出站网关获得 200 状态的消息
- c++ - 在 C++ 64 位环境下,是否存在 new 运算符的结果指针使用全部 8 个字节的情况?
- javascript - 将 html 缩放为图像
- java-stream - Java 8 Streams:迭代地图内的列表
- keycloak - OpenID 提供者 [oidc] 没有返回随机数
- python - Adanet:错误:张量流:模型因损失= NaN而发散
- macos - zsh:权限被拒绝:/Users/jailbreak/Desktop/project/n.py
- python - 如何将我的 Cython 生成的 C 代码转换为可导出的 DLL?
- django - 传递 id 用户查看功能
- android - BLE 连接失败:由于 BD_ADDR 不可接受,连接被拒绝