我们团队正在使用 git flow atm,并且我们不断回到一个问题。
从哪个分支制作包以部署到生产环境?
如果您创建一个发布分支,并在测试环境中对其进行测试,那么采用相同的构建并将其部署到生产环境是有意义的。但是如果我正确理解了 git Globe,你应该做的就是首先将发布分支合并到主分支(创建带有版本号的标签),然后将新版本从主分支部署到生产。这也是有道理的,因为我们的构建系统将分支中的最后一次提交 SHA 附加到版本号,因此我们可以轻松找到当前有效的版本以及与当前部署的代码相对应的标签。
现在我知道release分支和master分支的代码库应该是1:1完全相同的,但事实是你正在将一个未经测试的包部署到生产环境,这让团队中的一些人有点紧张:P
所以我想在这里问,你认为最好的方法是什么?
红色圆圈中的代码应该是相同的。 master 仅通过合并进行更改,此时其中的任何内容尚未到达发布分支。如果它们不同(合并后),则表明存在流程问题。
也就是说,在我的理解中,分支的想法是你总是从主人那里释放出来。否则 0.2 版本从何而来?
在该图中,我将在将发布分支合并到 master 后从 master 部署到生产环境。
如果这样做让团队中的一些人感到紧张,我认为这可能是由于对 git 如何处理合并的误解造成的。 当您使用以下命令将发布分支合并到主分支时:
git co master
git merge release-branch
两个分支中的代码将是相同的。 如果您想亲自检查,可以运行
git diff release-branch
并查看任何差异。
如果我们刚把master部署到生产环境就发现bug怎么办?如果我们使用release分支,我们只需修复它并测试,如果没有更多bug,我们合并到master,不需要hotfix分支。