在 2 个不同的存储库中管理 Azure DEVOPS Git DEV 和发布分支是个好主意吗?
Posted
技术标签:
【中文标题】在 2 个不同的存储库中管理 Azure DEVOPS Git DEV 和发布分支是个好主意吗?【英文标题】:Is it good idea to Manage Azure DEVOPS Git DEV and Release Branches in 2 Different Repositories? 【发布时间】:2021-05-14 11:10:02 【问题描述】:我们正在从 TFVC 迁移到 GIT,在 TFVC 中,我们曾经管理 DEV 分支进行开发和 Master 分支进行发布。
TFVC 分支机构管理
-
每个开发人员都将在 DEV 分支上工作,他们将在 DEV 分支上提交他们的更改。
构建将从 DEV 分支部署到 Staging ENV(staging 是我们的内部环境。)
一旦我们完成了正在进行的 Sprint 的 PCR/新集成(DEV 分支)并且我们准备好上线,我们曾经将更改从 DEV 合并到主分支。
将在 UAT / BETA(客户端测试环境)上从 Master 部署构建。
一旦他们验证并发出 go 信号,就会在 Live 上部署相同的构建。
使用这种方式只用于管理 TFVC 中的 DEV 和 Master 分支。
现在在 GIT 中,每个开发人员在开始处理任何 PCR/新集成时都会创建自己的分支。一旦他们完成更改,这些将使用 Pull Request 合并到 Master 中(我知道我们可以在更改合并后删除分支,但我看到人们没有遵循这个流程)。
仅 2 个月前我们开始使用 GIT,现在我可以看到超过 10-15 个分支,我们没有任何专门的资源来负责管理分支和这个工作流程。
在当前 Sprit / PCR / Hotfix 的开发完成后,我们将在 Staging / UAT / LIVE 上部署构建。 每次实时部署/发布都会维护新分支。
那么在 DEV 存储库中维护开发分支和对于实时/发布分支创建(主/发布)存储库以维护发布分支是个好主意。
这样我只是想把事情分开,你认为这是个好主意吗? 将来我们会面临什么问题,或者他们有更好的方法吗?
【问题讨论】:
查看 Gitflow 和 GithubFlow 分支模型。它们很常用,并且适用于大多数团队。 【参考方案1】:在 DEV 存储库中维护开发分支是否是个好主意,对于实时/发布分支创建(主/发布)存储库以维护发布分支。
这是针对您的情况的一种解决方案。即使您在不同的存储库中管理关键分支,如果开发人员在complete this pull request 时不选中“合并后删除”或手动操作,他们仍然会创建更多子分支并将它们留在这里删除它们。而且在某种程度上违背了 Git 的工作流程。
因此,Azure DevOps 提供了存储库权限管理,如下所示。详情请参阅:Set repository permissions for Git or TFVC。 您可以设置不同的权限以允许特定成员可以创建分支。而在Branches page,你可以查看谁是分支的作者。
此外,您可以按照以下文档设置分支策略:Improve code quality with branch policies,添加代码审查者以在完成拉取请求之前批准代码。
【讨论】:
感谢 Edward 分享管理存储库分支的权限和策略,但是在我们的你应该如何继续并开始管理不同存储库中的发布和开发分支? 如果你喜欢在不同的存储库中管理 dev 分支和 master 分支,没关系。我能想到的一件事是,如果您需要跟踪不同存储库中的两个分支之间的提交历史记录以进行调试或其他什么,将来它将增加工作量。 是的,我同意你的看法,这会增加工作量和跟踪问题。非常感谢。以上是关于在 2 个不同的存储库中管理 Azure DEVOPS Git DEV 和发布分支是个好主意吗?的主要内容,如果未能解决你的问题,请参考以下文章
【Azure 存储服务】关于对Azure Storage Account 的 Folder 权限管理和设定
您可以在 Microsoft 的功能管理库中使用 Azure 功能中的功能门装饰吗?
从 Azure DevOps 中的子模块触发父存储库中的构建