添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019 | TFS 2018

Visual Studio 2019 | Visual Studio 2022

当所有必需审阅者批准拉取请求 (PR) 并且 PR 满足所有 分支策略 要求后,可以将更改合并到目标分支并 完成 PR 。 或者,如果决定不继续进行 PR 中的更改,可以 放弃 PR

若要处理审阅者的更改,以及回复并解决评审注释,请参阅 处理注释

  • 必须在项目上启用 Repos。 如果 Repos 中心和关联页面未显示,请参阅 打开或关闭 Azure DevOps 服务 以重新启用 Repos。

  • 若要完成 PR,在 PR 所在的项目中,必须是“参与者”安全组的成员或具有相应的权限。

  • 若要参与 PR,必须是“读取者”安全组的成员或具有相应的权限。

  • 若要查看或评审 PR,必须具有对 Azure DevOps 项目的基本或更高的访问权限。

  • 如果你不是要参与的项目的成员,请 添加为成员

    对于公共项目,被授予利益干系人访问权限的用户对 Azure Repos 具有完全访问权限。

  • 必须在项目上启用 Repos。 如果 Repos 中心和关联页面未显示,请参阅 打开或关闭 Azure DevOps 服务 以重新启用 Repos。
  • 若要完成 PR,在要更改的项目中,必须是“参与者”安全组的成员或具有相应的权限。
  • 若要参与 PR,必须是“读取者”安全组的成员或具有相应的权限。
  • 要查看或评审 PR,必须是 Azure DevOps 项目的成员,具有基本访问级别或更高级别。 如果你不是项目成员,请 添加为成员
  • 若要完成 PR,必须是 Azure DevOps 项目“参与者”安全组的成员或具有相应的权限。
  • 要查看或评审 PR,必须是 Azure DevOps 项目的成员,具有基本访问级别或更高级别。 如果你不是项目成员,请 添加为成员
  • 若要参与 PR,必须是 Azure DevOps 项目“读取者”安全组的成员或具有相应的权限。
  • 若要了解有关权限和访问权限的详细信息,请参阅 默认 Git 存储库和分支权限 关于访问级别
  • 在 Azure DevOps Services 中,可以使用 azure-devops 扩展从 Azure 命令行接口 (CLI) 管理 PR 和其他资源。 要了解如何使用 Azure DevOps Services CLI,请参阅 Azure DevOps CLI 入门 。 用于 PR 的 Azure Repos CLI 命令使用 az repos pr
  • 检查合并更改

    完成 PR 时,Git 将新的合并提交添加到主分支的末尾。 此合并提交链接了主分支和 PR 源分支的早期历史记录。 若要查看预览合并提交并检查 合并冲突 ,请选择 PR 的“概述”页右上角的“更多选项”菜单,然后选择“查看合并变更”。

    如果在创建 PR 后更改了目标分支,请选择“重启合并”以创建新的预览合并提交并更新合并更改差异视图。

    评审分支策略

    团队可以设置 分支策略 ,要求受保护分支中的 PR 满足特定条件,然后 PR 才能合并。 可以查看对 PR 生效的分支策略、合并是否需要这些策略,以及 PR 是通过还是失败。

    Visual Studio Azure DevOps CLI

    可以在 Visual Studio 中打开 PR,然后按照“浏览器”选项卡中所述查看分支策略。

    要在 Visual Studio 中打开 PR,请在“Git”菜单中选择“<你的 Git 服务>”>“查看拉取请求”,然后选择一个拉取请求将其打开。

    Visual Studio 2019 版本 16.8 及更高版本提供 Git 版本控制体验,同时保留团队资源管理器 Git 用户界面。 要使用团队资源管理器,请从菜单栏中取消选中“工具”>“选项”>“预览功能”>“新 Git 用户体验”。 可以互换使用任一界面中的 Git 功能。

    从 Visual Studio 团队资源管理器访问 PR:

  • 从 Visual Studio 连接到项目

  • 选择“查看”>“团队资源管理器”,打开团队资源管理器。 还可按 Ctrl+ \ 、Ctrl+M。

  • 从“主页”中选择“拉取请求”,查看由你打开或分配给你的 PR 列表。

  • 若要在 Web 门户中打开 PR 并查看生效的策略,请右键单击该 PR,选择“在浏览器中打开”。

    若要查看对 PR 生效的所有分支策略,请将 az repos pr policy list 与所需的 id 参数一起使用。

    az repos pr policy list --id
                            [--detect {false, true}]
                            [--org]
                            [--query-examples]
                            [--skip]
                            [--subscription]
                            [--top]
    --org
    --organization Azure DevOps 组织 URL。 可以使用 az devops configure -d organization=<ORG_URL> 配置默认组织。 如果未配置为默认或未通过 git 配置选取,则为必需。示例:https://dev.azure.com/MyOrganizationName/--query-examples 建议的 JMESPath 字符串。 可以复制其中一个查询,并将其粘贴到 --query 参数后,置于双引号中,以查看结果。 可以添加一个或多个位置关键字,以便根据这些关键字提供建议。 --skip 要跳过的策略数。 --subscription 订阅的名称或 ID。 可以使用 az account set -s <NAME_OR_ID> 配置默认订阅。 --top 要列出的最大策略数。

    例如,若要查看对 PR #28 生效的策略,请运行以下命令:

    az repos pr policy list --id 28 --output table
    Evaluation ID                         Policy                                         Blocking    Status    Expired    Build ID
    ------------------------------------  ---------------------------------------------  ----------  --------  ---------  ----------
    84e7ca6d-0b42-4819-9f62-f41df5e319f3  Minimum number of reviewers (1)                True        Approved
    1ba061d8-9e9f-401b-ab61-e2ed1c200aba  Required reviewers (1)                         True
    37620a4b-adc4-483d-9ca2-3f4e6ffe2990  Comment requirements                           False       Approved
    34b7cae8-812a-4c14-9229-f71a0e662e8b  Required reviewers (1) ([Fabrikam Fiber]\Web)  False
    a6e4380e-9f38-4aa5-863c-0fc496027362  Work item linking                              False       Rejected
    
  • 合并(非快进):与保留所有提交的非线性历史记录合并。
  • 对提交进行 Squash:与线性历史记录合并,该历史记录将所有源提交合并到目标上的单个提交中或对 PR 进行 Squash 合并。 请注意,将为目标分支创建新提交,而不保留源分支中的提交历史记录。
  • 变基和快进:将源提交变基到目标上并快进。
  • 半线性合并:将源提交变基到目标上并创建双父合并。
  • 强制实施现有策略。 例如,如果分支当前有一个“仅 Squash 合并”策略,则必须更改该策略才能使用其他合并类型。

  • 选择以下任一完成后选项。 某些选项不适用于某些合并类型。

  • 合并后完成关联的工作项:完成任何链接的工作项。
  • 合并后删除 <分支名称>:在合并后删除 PR 的源分支。
  • 自定义合并提交消息:添加自定义合并提交消息。 如果选择此选项,请更新合并提交消息。
  • 替代分支策略并启用合并。 即使 PR 不满足所有分支策略,也强制进行合并。 仅当你具有“免除策略强制实施”权限时,此选项才可用。
  • 选择“完成合并”。

  • 合并后删除 <branch name>,用于从 PR 中删除源分支。

  • 合并时对更改进行 Squash,用于对 PR 进行 Squash 合并。 请注意,将为目标分支创建新提交,而不保留源分支中的提交历史记录。

  • 替代分支策略并启用合并,用于强制分支进行合并(即使它不满足所有分支策略)。 仅当你具有“免除策略强制实施”权限时,此选项才可用。

    仍会强制实施现有策略。 例如,如果分支当前有一个“仅 Squash 合并”策略,则必须编辑该策略才能使用其他合并类型。

  • 完成:立即完成 PR,并将更改合并到目标分支。
  • 设置自动完成:如果你有分支策略,可以选择“设置自动完成”,将 PR 配置为在符合所有分支策略后关闭。
  • 放弃:关闭 PR 而不合并更改。
  • 在“完成拉取请求”中,输入合并提交的消息并更新 PR 说明。

  • 选择以下任一完成后选项:

  • 合并后完成链接的工作项,用于完成任何链接的工作项。
  • 合并后删除 <branch name>,用于从 PR 中删除源分支。
  • 合并时对更改进行 Squash,用于对 PR 进行 Squash 合并。 请注意,将为目标分支创建新提交,而不保留源分支中的提交历史记录。
  • 替代分支策略并启用合并,用于强制分支进行合并(即使它不满足所有分支策略)。 仅当你具有“免除策略强制实施”权限时,此选项才可用。
  • 选择“完成合并”。

    链接的工作项也会更新,显示 PR 完成。

    若要完成 PR,请在浏览器中打开 PR,然后在“概述”页上选择“完成”或设置其他选项。

    要在 Visual Studio 中打开 PR,请在“Git”菜单中选择“<你的 Git 服务>”>“查看拉取请求”,然后选择一个拉取请求将其打开。

    从 Visual Studio 2019 团队资源管理器访问 PR:

  • 从 Visual Studio 连接到项目

  • 选择“查看”>“团队资源管理器”,打开团队资源管理器。 还可按 Ctrl+\、Ctrl+M。

  • 从“主页”中选择“拉取请求”,查看由你打开或分配给你的 PR 列表。

  • 若要在 Web 门户中打开 PR,请右键单击该 PR,选择“在浏览器中打开”。

    若要完成 PR 并合并更改,请使用 az repos pr update 将 PR --status 更新为 completed

    例如,若要完成 PR #21,请使用:

    az repos pr update --id 21 --status completed
    

    设置完成选项

    可在使用 az repos pr create创建 PR 时设置 PR 完成选项,或使用 az repos pr update 更新现有 PR 中的创建选项。

    PR 完成选项包括:

  • bypass-policy {false, true}:是否在可以合并拉取请求后绕过任何必需的策略并完成拉取请求。
  • bypass-policy-reason:绕过必需的策略的原因。
  • delete-source-branch {false, true}:是否在拉取请求完成并合并后删除源分支。
  • merge-commit-message:自定义合并提交消息。
  • squash {false, true}:是否将源提交 Squash 为单个目标提交以进行合并。
  • transition-work-items {false, true}:是否在 PR 合并时解析链接的工作项。
  • 若要设置完成选项并完成现有 PR,请将 az repos pr update 与必需的 id 参数一起使用。

    az repos pr update --id
                       [--auto-complete {false, true}]
                       [--bypass-policy {false, true}]
                       [--bypass-policy-reason]
                       [--delete-source-branch {false, true}]
                       [--description]
                       [--detect {false, true}]
                       [--draft {false, true}]
                       [--merge-commit-message]
                       [--org]
                       [--squash {false, true}]
                       [--status {abandoned, active, completed}]
                       [--subscription]
                       [--title]
                       [--transition-work-items {false, true}]
    --description -d
    拉取请求的新说明。 可以包含 Markdown。 每个值都是新行。 例如:--description "First Line" "Second Line"--detect
    自动检测组织。 接受的值:falsetrue--draft
    将 PR 转换为草稿模式或发布它。 接受的值:falsetrue--merge-commit-message
    合并提交时要显示的消息。
    --org
    --organization Azure DevOps 组织 URL。 可以使用 az devops configure -d organization=<ORG_URL> 配置默认组织。 如果未配置为默认或未通过 git 配置选取,则为必需。示例:https://dev.azure.com/MyOrganizationName/--squash 合并到目标分支时,对源分支中的提交执行 Squash 操作。 接受的值:falsetrue--status 设置拉取请求的新状态。 接受的值:abandonedactivecompleted--subscription 订阅的名称或 ID。 可以使用 az account set -s <NAME_OR_ID> 配置默认订阅。 --title 拉取请求的新标题。 --transition-work-items 将链接到拉取请求的任何工作项转换为下一个逻辑状态,例如“已解决”。 接受的值:falsetrue

    以下示例完成 PR #21、删除其源分支、解析其链接的工作项并添加合并提交消息:

    az repos pr update --id 21 --status completed --delete-source-branch true --transition-work-items true --merge-commit-message "This update is complete."
    

    本地 Azure DevOps Server 不支持 Azure DevOps CLI 命令。

  • 如果目标分支上的策略禁止使用变基策略,则需要“替代分支策略”权限才能变基。
  • 如果 PR 源分支有策略,则无法将其变基。 变基将在不经过策略审批过程的情况下修改源分支。
  • 如果使用合并冲突扩展来解决合并冲突,则无法变基。 在单独对所有 PR 提交进行变基时,应用于三向合并的冲突解决方法很少成功或有效。
  • 在所有这些情况下,仍可以在本地对分进行变基,然后向上游推送,或者在完成 PR 时对更改进行 Squash 合并。

    多个合并基本问题

    在某些情况下,一个 PR 有多个真正的合并库,这种情况可能会导致安全问题。 如果 PR 中的文件在合并库之间具有不同的版本,则会出现多个合并库警告。 有关详细信息和修正方法,请参阅多个合并库

    解决合并冲突

    分支中的文件更改可能会与其他分支中的更改冲突。 如果不清楚如何合并更改,Git 将在 PR 的“概述”页上显示冲突的文件。 必须先解决 PR 分支与目标分支之间的任何合并冲突,然后才能合并 PR 或将 PR 设置为自动完成。 有关解决合并冲突的说明,请参阅解决合并冲突

    将拉取请求设置为自动完成

    Visual Studio Azure DevOps CLI

    从“完成”下拉列表中选择“设置自动完成”,在条件满足所有分支策略后立即完成并合并 PR 更改。 PR 完成后,你会收到电子邮件通知。 如果冲突或错误阻止 PR 完成,电子邮件将通知你该问题。

    当你有分支策略时,“设置自动完成”选项在 Azure Repos 和 TFS 2017 及更高版本中可用。 如果未看到“设置自动完成”,则你没有任何分支策略。 有关详细信息,请参阅分支策略

    默认情况下,设置为自动完成的 PR 只等待必需的策略。 在“启用自动完成”面板中,你也可以选择等待可选策略。

    从 TFS 2018 Update 2 开始,PR 的“概述”页显示 PR 正在等待的未完成策略条件的列表。 如果在“启用自动完成”面板中将一个策略设置为必需,则可以在“概述”页上将其重新设置为可选。

    选择“取消自动完成”以关闭自动完成。

    在 Web 门户中打开拉取请求。 在“概述”页上,选择“设置自动完成”。

    要在 Visual Studio 中打开 PR,请在“Git”菜单中选择“<你的 Git 服务>”>“查看拉取请求”,然后选择一个拉取请求将其打开。

    从 Visual Studio 2019 团队资源管理器访问 PR:

  • 从 Visual Studio 连接到项目

  • 选择“查看”>“团队资源管理器”,打开团队资源管理器。 还可按 Ctrl+\、Ctrl+M。

  • 从“主页”中选择“拉取请求”,查看由你打开或分配给你的 PR 列表。

  • 若要在 Web 门户中打开 PR 并查看生效的策略,请右键单击该 PR,选择“在浏览器中打开”。

    设置自动完成以在 PR 通过所有必需的审批和分支策略时自动完成 PR。 可以在创建 PR 时设置自动完成,或更新现有 PR。

  • 若要在创建 PR 时设置自动完成,请使用 az repos pr create --auto-complete true
  • 若要将现有 PR 更新为自动完成,请使用 az repos pr update --id <PR Id> --auto-complete true
  • 本地 Azure DevOps Server 不支持 Azure DevOps CLI 命令。

    若要放弃 PR 而不合并更改,请使用 az repos pr update --id <PR Id> –-status abandoned。 可以通过将状态设置为 active 来重新激活 PR。

    本地 Azure DevOps Server 不支持 Azure DevOps CLI 命令。

    若要撤消 PR 中的更改,请执行以下步骤。 有关详细信息,请参阅撤消更改

  • 打开已完成的 PR,选择“还原”。 此操作会创建一个新分支,其中包含撤消存储库中现有目标分支中的 PR 的更改。

  • 在“还原拉取请求”窗格中:

  • 在“目标分支”下,选择要撤消 PR 更改的分支。
  • 在“需要主题分支名称”下,根据需要还原 PR 分支名称。
  • 选择“还原”。
  • 在“新建拉取请求”屏幕上,选择“创建”。

  • 合并新 PR 以完成还原。

    在此还原期间创建的分支具有单个提交,用于从原始 PR 还原所有文件更改。 对于原始 PR 中的每个提交,分支不包含还原的提交。

    通过挑拣复制更改

  • 拉取请求更新通知
  • 关于拉取请求和权限
  •