在 2 个不同的存储库中管理 Azure DEVOPS Git DEV 和发布分支是个好主意吗?

Is it good idea to Manage Azure DEVOPS Git DEV and Release Branches in 2 Different Repositories?

我们正在从 TFVC 转移到 GIT,在 TFVC 中,我们过去管理开发的 DEV 分支和发布的 Master 分支。

TFVC 分支机构管理

  1. 每个开发人员都将在 DEV 分支上工作,他们将在 DEV 分支上提交更改。
  2. 构建将从 DEV 分支部署到 Staging ENV(staging 是我们的内部环境。)
  3. 一旦我们完成了 PCR / 新集成(DEV 分支)以进行 Sprint 并且我们准备好上线,我们过去常常将更改从 DEV 合并到 Master 分支。
  4. Build 将从 Master 部署到 UAT / BETA(客户端测试环境)。
  5. 一旦他们验证并发出信号,将在 Live 上部署相同的构建。

使用这种方式只用于管理 TFVC 中的 DEV 和 Master 分支。

现在 GIT 每个开发人员在开始处理任何 PCR/新集成时都会创建自己的分支。一旦他们完成更改,这些更改将使用 Pull Request 合并到 Master 中(我知道我们可以在合并更改后删除分支,但我看到人们没有遵循这个流程)。

仅仅 2 个月前我们开始使用 GIT,现在我可以看到超过 10-15 个分支机构,我们没有任何专门的资源来管理分支机构和这个工作流程。

当前 Sprit / PCR / Hotfix 的开发完成后,我们将在 Staging / UAT / LIVE 上部署构建。 每次实时部署/发布都会维护新分支。

因此,在 DEV 存储库中维护开发分支并为实时/发布分支​​创建(主/发布)存储库以维护发布分支是个好主意。

这样我只是想把事情分开,你认为这是个好主意吗? 我们将来会遇到什么问题吗?或者他们有更好的方法吗?

Is it good idea to Maintain Development Branches in DEV Repository and For Live / Release branches create ( Master / Release ) repository to maintain release branches.

这是针对您的情况的一种解决方案。即使您在不同的存储库中管理关键分支,开发人员仍然会创建更多的子分支并将它们留在这里,如果他们在 complete this pull request 或者他们手动删除它们。它在某种程度上违反了 Git 工作流程。

因此,Azure DevOps 提供了存储库权限管理,如下所示。有关详细信息,请参阅:Set repository permissions for Git or TFVC 您可以设置不同的权限以允许特定成员可以创建分支。并且在Branches page中可以查看branch的作者是谁

此外,您可以按照此文档设置分支策略:Improve code quality with branch policies,添加代码审阅者以在完成拉取请求之前批准代码。