【问题标题】:How do you keep changes separate and isolated across multiple deployment environments in git?您如何在 git 中的多个部署环境中保持独立和隔离的更改?
【发布时间】:2012-11-30 19:10:13
【问题描述】:

在我的工作场所,我们正在尝试设计一个基于 Git 的工作流来处理我们的部署和代码更改。

我们有一个 Java EE Web 应用程序和 3 个部署环境(测试、QA 和生产)。我们还有一个 Jenkins CI 实例来处理构建和部署。

当对应用程序的代码(在分支中)进行更改时,我们需要能够挑选并选择将哪些代码提升为 QA 和 Production。有些人可能会进行质量检查,然后永远不会投入生产。

我们还需要避免在升级和合并时意外将其他所有人的代码包含在您的分支中。

分支的“提升”也需要自动化 - 分析师可以选择分支或变更集,然后由 jenkins 或其他脚本执行实际的合并和部署。我在这里看到合并冲突是一个问题......

您建议如何设置 (a) Git 存储库来处理这些要求?

【问题讨论】:

    标签: git jakarta-ee deployment git-workflow


    【解决方案1】:

    正如我在“Code Promotion with Git”中提到的,不要忘记分支不是你隔离开发工作的唯一方式(比如跨环境推广)。

    您自己也有 git 存储库,您可以将 git 存储库分配给特定角色(“测试”存储库、“QA”存储库等)

    结合Gitolite,您可以保护这些存储库免受不应直接推送到开发生命周期中某个阶段的用户的访问。

    还与 guarded commit 结合使用,您可以推送到测试存储库,该存储库将:

    • 如果未通过编译和/或某些单元测试,则拒绝您的提交
    • 或接受它,并自动将其推送到 QA repo 以供审核。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-02
      • 1970-01-01
      • 2020-04-28
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多