【问题标题】:Prevent unchecked changes from merging into main branch防止未经检查的更改合并到主分支
【发布时间】:2021-08-15 14:31:22
【问题描述】:

我们有一个 PL/SQL(Oracle DB 过程语言,但这并不重要)git 项目。我们有 develop 分支,它包含所有更改并且似乎是 PRO 当前状态(尽管使用 master 应该更好,但它已经存在多年了)。我们通常从develop 创建分支,对这个分支做一些更改(假设它是feature/JIRA-1234)。然后我们有代表 QA、集成、UAT 测试环境状态的环境分支(假设它是其中之一,它是 env/qa)。我们将准备好测试的功能合并到所需的环境分支中。测试后,我们创建发布分支,收集准备在 PRO 中部署的所有功能。我们在 stage env 上检查部署,修复安装问题(如果有),然后使用发布标签标记此分支的最新提交,并将其传递给负责部署过程的 OPS 团队。

我们现在使用这种方法面临的一个问题是 feature/JIRA-1234 分支在合并到 env/qaenv/uat 等之后仍然“不受保护”,直到合并到发布分支的那一刻。因此,我可以在 6 次提交后将分支传递给 QA 团队,然后将新内容推送到该分支,然后将其传递给 env/uat,例如,稍后甚至在将其合并到发布分支之前进行更改。因此,经过一段时间后,QA 工程师不能真正说他/她测试了分支的 最新 版本。

我想在某些事件发生之前可能会以某种方式“锁定”功能分支以防止合并(例如“质量检查通过”)。或者也许改变开发过程。有时开发人员希望通过添加一个真正不应该测试的小修复来改进他们的代码,但后来它证明是 PRO 中的一个错误。

我们使用 gitlab 作为审查和管理合并请求的工具。所以可能它有一些解决这个难题的工具,但我到目前为止还没有找到它。

欢迎提出任何建议!或者,也许您可​​以分享涵盖此类情况的文章的链接。

编辑:

我知道git flow 方法。我不认为它对我们有用,因为我们无法将功能合并回develop,因为即将发布的版本的范围直到某个时刻还不确定。所以我的测试功能无法发布,因为商务团队现在不想在 PRO 中看到它。这就是为什么我们在 git flow 方法方面没有 develop 分支。

【问题讨论】:

  • 看来您只是没有正确的分支和正确的规则来合并它们...查看git flow ...atlassian.com/git/tutorials/comparing-workflows/…
  • @JoelFan 嗨!感谢您指出。我已将我的想法放在 EDIT 中。
  • 我不明白为什么git flow 不起作用。 developreleasemaster 是 3 个不同的分支。你有这 3 个分支吗(即使你给它们取了另一个名字)?在您描述的场景中(“商务团队不想在产品中看到它”),您测试的功能可以合并到develop,但不能合并到release。在git flow 中没有“将develop 合并到release”。相反,releasedevelop 中的所需提交(不一定从最新 提交)处从develop 分支。您可能只需要更好地学习git
  • @JoelFan 感谢您的解释!假设我们有 4 个测试功能按以下顺序合并到 develop 中:f/1f/2f/3f/4。我们决定创建一个具有f/1f/3 功能的版本。我可以从f/3 提交分叉,但我怎样才能从其中排除f/2
  • 首先 f/2 和 f/4 合并到 develop 是一个错误。在您确定在下一个版本中需要它之前,您不应该将功能合并到开发中。如果您已经合并了它们,您可以从开发中恢复不需要的合并提交,然后在恢复提交之后创建一个发布分支。如果您希望 QA 测试不会进入下一个版本的功能(一个有问题的目标),那么创建一个新的“qa”分支,其中包含所有“准备测试”功能。

标签: git merge gitlab


【解决方案1】:

感谢@JoelFan,我终于了解了如何使用分支。

经过一番谷歌搜索后,我发现除了git-flow 进程之外,还存在github-flowgitlab-flow

第一个非常简单,适用于小型且快速推出的版本,而第二个为具有依赖于环境的分支的类 SAAS 产品提供了一种方法。我认为它对我们的发布模型会有一些额外的调整。

【讨论】:

    猜你喜欢
    • 2011-12-30
    • 2010-11-22
    • 1970-01-01
    • 1970-01-01
    • 2015-02-19
    • 1970-01-01
    • 1970-01-01
    • 2019-06-11
    • 2018-12-23
    相关资源
    最近更新 更多