gpt4 book ai didi

git - 是否有用于滚动发布 Web 应用程序的 Git 工作流程?

转载 作者:太空狗 更新时间:2023-10-29 13:49:40 24 4
gpt4 key购买 nike

我的团队由大约 12 名开发人员组成,他们以滚动 Release模式制作 Web 应用程序:一旦某些功能集准备就绪,它就会由高级开发人员审查并推送到 QA 系统,然后推送到生产系统。这通常每个工作日发生几次。

当前使用的 VCS 是 SVN,向 QA 和生产系统的推送是使用一个奇怪的内部部署工具完成的,该工具在 SVN 上运行,但基于文件(因此,如果您需要推送新版本的文件 X,并且 X 已从您不想推送的其他一些变更集中取消推送更改,您有问题)。

我计划宣传切换到 Git,所以我在考虑上面的工作流程。通常的建议,例如经常链接的 Successful Git branching model不适用,因为我们没有版本控制版本。

问题 1:是否有任何文档化的工作流可供我查看以获取更多灵感,类似于上面链接的工作流,这些工作流针对滚动发布进行了优化?或者您会推荐一个吗?

我尝试在纸上模拟一个工作流程,它像往常一样使用功能分支和 master,并有更多的分支反射(reflect) QA 和生产服务器的状态。 (只有从 master merge 到那里。)

我无法克服的问题是 master 中的某些内容由于某种原因未准备好发布。例如,假设功能分支 foo 被认为已完成, merge 到 master 并推送到 qa 分支。然后功能分支 bar 也会发生同样的情况。现在在 QA 系统上,我们发现 foo 已损坏,需要更多开发,而 bar 已准备好推送到生产系统中。但是 master 上没有提交,其中包括 bar,但不包括 foo,那么我们应该推送什么?唯一想到的就是revert the merge commitfoo 转换为 master。 (在链接后面,Linus 解释了恢复 merge 提交的几个问题。)

问题 2:知道如何更优雅地解决这个问题吗?

最佳答案

这是我迄今为止使用的非常成功的工作流程:


  • 每个开发人员都致力于他们的功能/修复

  • 一旦他们对工作感到满意,他们就会将分支推送到远程

    git push -u origin 新功能

  • QA 或测试 [server |人 | team] pull master和你要发布的特性分支,并 merge 到master但不推送到远程

  • 一旦功能通过 QA,它就会与 --no-ff merge 并推送到 master

  • 现在可以删除功能分支

    git push origin:newfeature

  • 实时服务器总是从主服务器 pull


对我们来说,这确保实时服务器包含当前“最佳”代码的滚动版本。

如果您对分支模型感兴趣,我发现它非常有用: nvie.com/posts/a-successful-git-branching-model/

关于git - 是否有用于滚动发布 Web 应用程序的 Git 工作流程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14551983/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com