我们有一个大型企业项目,并且有一些发展阶段。我们使用git。分支看起来像这样:
DEV-> SIT-> PROD
DEV分支是开发分支。开发完成后,会将其推送到SIT分支,并且质量检查人员将SIT源用于测试阶段。为了发布,使用了PROD。
问题是:如果DEV已经完成并且SIT测试已经开始并且发现了错误,那么正确的流程是什么?
1:
2:
从DEV创建分支并将错误修正推送到DEV。
将推送从DEV更改为SIT
什么流量是正确的1或2?
我想知道最佳实践
答案 0 :(得分:2)
这都是可以使用的有效策略。
选项1
优点:
缺点:
选项2
优点:
缺点:
个人我喜欢第二个选项,因为它更精简并且易于在DEV中维护。您也可以查看这些workflows以获得其他一些想法。
答案 1 :(得分:0)
这个问题的答案不是“ TRUE”,但作为开发人员,您不应该重新发明轮子。 已经有广泛的独立于项目的分支策略:
我建议您通读它们并与您的团队决定。并且仅应用这些流程。还有一些工具可以强制执行每种策略。
答案 2 :(得分:0)
从SIT创建修补程序分支可解决那里的问题。 如果测试通过,则将其合并到SIT,然后从SIT重新构建DEV
SIT -> create branch fix/issue
QA PASS -> merge fix/issue into SIT -> rebase dev from SIT
答案 3 :(得分:0)
Git流在很大程度上取决于您的开发环境和堆栈。 Github,Bitbucket和GitLab有他们自己的建议和最佳实践。
我建议阅读所有内容: Github flow,Bitbucket recommendations,GitLab flows。
对于我来说,您的两个错误修正选项都不是最佳选择,并且会使流程更加复杂。为butfix创建其他无用的分支,而不是将新合并到SIT或DEV。所有这些操作都没有意义。如果您在DEV功能中发现新错误该怎么办?有新分支吗?
我建议使用Stable mainline branching流。
feature -> pull --rebase PROD & push -f -> remote/feature -> QA testing -> PROD
| |
FIX <--- <--- <--- bug
逐步:
feature
创建prod
分支。feature
功能/修复程序。feature
完成后,以最新的prod
为基础,并强制推送。remote/feature
分支上进行测试。remote/feature
中发现错误,请重复步骤2-4。remote/feature
快速合并到prod
。