2

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

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

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

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

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

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

4

1 回答 1

1

正如我在“使用 Git 进行代码提升”中提到的,不要忘记分支不是隔离开发工作的唯一方式(例如跨环境提升)。

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

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

还与受保护的提交结合使用,您可以推送到测试存储库,该存储库将:

  • 如果未通过编译和/或某些单元测试,则拒绝您的提交
  • 或接受它,并自动将其推送到 QA repo 以供审查。
于 2012-11-30T21:14:02.637 回答