github - 使用 GitHub 流程的开发和生产环境

标签 github branching-and-merging git-flow github-actions github-flow

在工作中,我们现在使用 GitHub,并使用 GitHub 流程。我对 GitHub flow 的理解是有 master 分支和 feature 分支。与 git flow 不同,没有开发分支。

这对我们已经完成的项目非常有效,并且简化了事情。

但是,对于我们的产品,我们有一个开发和生产环境。对于生产环境,我们使用 master 分支,而对于开发环境,我们不确定如何去做?

我能想到的唯一想法是:

  • 当分支与 master 合并时,使用 GitHub 操作重新部署 master。
  • 推送另一个分支时,设置一个 GitHub 操作,以便将任何其他分支(除 master 之外)部署到此环境。

  • 目前,对于需要开发环境的项目,我们基本上都是使用git flow(特性->开发->掌握)。

    您认为我的想法是否合理,如果不合理,您会推荐什么?

    编辑:

    只是为了澄清,我问的是使用 GitHub Flow 而不是 git flow 实现开发的最佳方法。

    最佳答案

    根据我的经验,具有多个环境的 GitHub Flow 是这样工作的。合并到 master 不会自动部署到生产。相反,合并到 master 会创建一个构建工件,该工件可以通过使用 ChatOps 工具的环境进行推广。

    例如,推送到 master 会创建一个名为 my-service-47cbd6c 之类的构建工件,它是服务名称和短提交哈希的组合。这被推送到某种工件存储库。然后可以使用诸如 ChatOps 风格的斜杠命令之类的工具将工件部署到各种环境中以触发 deloy。例如,此工具还可以进行检查以确保不会跳过测试环境。最后,工件被提升到生产环境。

    因此,对于您使用 GitHub Actions 的用例,我的建议是:

  • 推送到 master 会创建构建工件并自动将其部署到 开发 环境。
  • 开发中的测试
  • 通过使用斜杠命令部署到生产环境来提升工件。 slash-command-dispatch 操作将帮助您解决这个问题。
  • 关于github - 使用 GitHub 流程的开发和生产环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61958387/

    相关文章:

    macos - 通过终端从 github 访问提交历史记录?

    linux - 如何在 GIT 中处理这个 merge 问题

    .net - 颠覆 : Branch per Environment?

    git - 使用 Git 将开发上的功能分支的所有更改 merge 到发布分支

    git - 子分支和父分支同步自己

    github - 如何评论未显示的二进制文件的 Github 拉取请求

    javascript - 确定页面在 github 页面上已过时

    git - CI/CD 失败,因为缺少构建所需的文件,但在 .gitignore 中的公共(public)存储库中不需要

    git - 在功能分支上进行团队合作的最佳实践是什么?

    git - 如何在本地删除已在线删除的git远程分支?