【问题标题】:Protect Git branch in Visual Studio Team Services like in GitHub在 GitHub 中保护 Visual Studio Team Services 中的 Git 分支
【发布时间】:2016-03-23 16:03:04
【问题描述】:

我想保护我的 Visual Studio Team Services Git 存储库中的一些分支,就像在 GitHub 中可能的那样。我的用例与this one 相似但不完全相同。

我们将 GitFlow 与 masterdevelop 分支一起使用。以下是我的要求:

  • 进入master 分支我只想允许合并提交。应该拒绝所有开发人员直接提交到master 分支。应允许所有开发人员进行合并提交(= 完成 Git-Flow 版本或修补程序)。
  • 只允许通过拉取请求提交到develop 分支。应该允许任何开发者合并 Pull Requests,但不允许直接提交到develop

由于我们有很多存储库,因此设置应该很容易,或者应该可以通过 REST API 自动化设置。

GitHub 可以通过其保护分支设置轻松处理这些场景。我在 Visual Studio Team Services 的分支策略中找不到类似的东西。

【问题讨论】:

    标签: git git-flow azure-devops


    【解决方案1】:

    我认为分支策略是您在 VSTS 中寻找的功能。

    对于您的开发或主分支,您可能希望选中“要求最少数量的审阅者”框以强制通过 PR 进行所有更改,并阻止直接推送。如果您真的不关心审核要求,您可以选中“允许用户批准他们自己的更改”框 - 但无论如何启用审核员可能是一个好习惯。

    您从 GH 中受保护的分支获得的另一个功能是阻止强制推送的能力。这由 VSTS 中的权限控制,可以在 repo 或分支级别设置 - 这称为“重写和销毁历史记录(强制推送)”。

    此 MSDN 主题有更多详细信息和设置策略的屏幕截图:https://msdn.microsoft.com/en-us/Library/vs/alm/Code/git/branch-policies

    所有这些设置都可以通过 REST 进行配置。这是政策 API 的链接:https://www.visualstudio.com/integrate/api/policy/configurations

    注意,使用 REST API 时,您可以一次为多个分支配置策略,甚至可以为通配符设置策略,即强制 release/* 下的所有分支都需要代码审查。

    【讨论】:

    • 谢谢。对于master 分支,我不想使用拉取请求。我们正在使用 Git-Flow,我只想允许提交来自完成 Git-Flow 版本(这是一个 git merge --no-ff 操作)。应该阻止直接提交。有这方面的政策吗?
    • 接受这个作为第一点的答案。关于第二点(保护 master 分支),我从微软那里得到了一个答案,说这目前不可用,但将来可能最终会得到支持。
    猜你喜欢
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多