Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022
Visual Studio 2019 |Visual Studio 2022
创建拉取请求 (PR),以评审和合并Azure Repos 上的 Git 存储库中的代码更改。 团队成员和利益干系人可以在将代码合并到目标分支之前查看更改并提供反馈。 审阅者还可以评论更改和投票以批准或拒绝代码。
团队可以要求针对受保护分支上任何更改的 PR,并设置分支策略以要求某些 PR 满足特定条件。
可通过多种方式列出、筛选、查看和打开针对项目的 PR。
先决条件
| 类别 |
要求 |
| 项目访问权限 |
项目的成员。 |
| 权限 |
- 查看私有项目中的代码:至少要具有基本访问权限。 - 克隆或贡献私有项目中的代码:参与者 安全组的成员或项目中的相应的权限。 - 设置分支或存储库权限: 管理 分支或存储库的权限。 - 设置分支策略、状态检查或更改默认分支:编辑存储库或分支的策略权限,或Project管理员安全组中的成员身份。 - 导入存储库:必须是项目管理员安全组的成员,或者将 Git 项目级别创建存储库权限设置为允许。 有关详细信息,请参阅设置 Git 存储库权限。 |
| Services |
已启用存储库。 |
| 工具 |
可选。 使用 az repos 命令: Azure DevOps CLI。 |
| 类别 |
要求 |
| 项目访问权限 |
项目的成员。 |
| 权限 |
- 查看代码:至少需要具有基本访问权限。 - 克隆或贡献代码:贡献者安全组的成员或项目中的相应权限。 |
| Services |
已启用存储库。 |
列出拉取请求
可以使用 Azure DevOps 项目网站、Visual Studio 或 Azure DevOps 命令行列出 PR。
要列出项目中特定存储库中的 PR,请在 Web 门户中转到该项目,然后选择 Repos>拉取请求。
验证是否选择了正确的存储库。
默认视图在我的选项卡下显示你的 PR。选择活动可显示当前存储库的所有活动 PR。 选择已完成或已放弃可显示已关闭的 PR 列表。
选择列表中的任何 PR 可转到该 PR 的概述页。
通过在我的工作视图中选择拉取请求,可以列出组织中不同项目的所有 PR。
若要列出 Visual Studio 中的拉取请求,请在“Git”菜单中,选择 <Git 服务>>查看拉取请求。
注意
Visual Studio 2022 支持直接在 IDE 中浏览拉取请求,适用于 Azure DevOps 托管的存储库和 GitHub 存储库。 在 Git 菜单中,选择“ 查看拉取请求 ”以打开 IDE 内拉取请求列表。 无需检出 PR 分支,即可查看 PR 的详细信息,包括描述、已修改的文件、提交、审阅者或相关项。 如果需要,还可以在浏览器中打开任意 PR。
Visual Studio 2019 版本 16.8 及更高版本提供 Git 版本控制体验,同时维护 Team Explorer Git 用户界面。 若要使用 团队资源管理器,请从菜单栏中取消选中 工具>选项>预览功能>新的 Git 用户体验。 可以从任意一个接口交替使用 Git 功能。
若要从 Visual Studio 团队资源管理器访问 PR,请执行以下操作:
从 Visual Studio 连接到你的项目。
选择查看>团队资源管理器,打开团队资源管理器。 还可以按 Ctrl、Ctrl,CtrlM。
从主页中选择拉取请求,查看由你打开或分配给你的 PR 列表。
若要查看 Azure DevOps Web 门户中的 PR 列表,请选择 操作,然后选择 在浏览器中打开。
要列出项目中的活动 PR 及其详细信息,请使用 az repos pr list。
az repos pr list [--creator]
[--detect {false, true}]
[--include-links]
[--org]
[--project]
[--query-examples]
[--repository]
[--reviewer]
[--skip]
[--source-branch]
[--status {abandoned, active, all, completed}]
[--subscription]
[--target-branch]
[--top]
参数
| 参数 |
描述 |
--creator |
将结果限制为此用户创建的拉取请求。 |
--detect |
自动检测组织。 接受的值:false,true。 |
--include-links |
包括每个拉取请求的链接。 |
--org
--organization
|
Azure DevOps 组织 URL。 可以使用 az devops configure -d organization=<ORG_URL>配置默认组织。
如果未配置为默认或未通过 git 配置选取,则为必需。示例:https://dev.azure.com/MyOrganizationName/。 |
--project
-p
|
项目的名称或 ID。 可以使用 az devops configure -d project=<NAME_OR_ID>配置默认项目。 如果未配置为默认或通过 git 配置进行选取,则为必需。 |
--query-examples |
建议的 JMESPath 字符串。 可以复制其中一个查询,并将其粘贴到 --query 参数后,用双引号查看结果。 可以添加一个或多个位置关键字,以便建议基于这些关键字。 |
--repository
-r
|
存储库的名称或 ID。 |
--reviewer |
将结果限制为此用户是审阅者的拉取请求。 |
--skip |
要跳过的拉取请求数。 |
--source-branch
-s
|
将结果限制为源自此源分支的拉取请求。 |
--status |
将结果限制为具有此状态的拉取请求。 接受的值:abandoned、active、all、completed。 |
--subscription |
Azure 订阅的名称或 ID。 可以使用 az account set -s <NAME_OR_ID>配置默认订阅。 |
--target-branch
-t
|
将结果限制为面向此分支的拉取请求。 |
--top |
要列出的拉取请求的最大数目。 |
例
以下命令列出存储库中的所有 PR,不考虑状态,并在表中显示输出。 此示例使用默认配置 az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber"。
az repos pr list --status all --output table
ID Created Creator Title Status IsDraft Repository
---- ---------- ------------------- ---------------------------------------------- --------- --------- ------------
11 2021-10-04 jamalh@fabrikam.com Revert 'Updated parameterized-functions.md' Completed False Fabrikam
10 2021-10-04 jamalh@fabrikam.com Updated parameterized-functions.md Completed False Fabrikam
9 2021-10-04 ke@fabrikam.com New pull request Completed False Fabrikam
8 2021-10-04 jamalh@fabrikam.com Updated parameterized-functions.md Abandoned False Fabrikam
7 2021-09-30 jamalh@fabrikam.com Added note-new-git-tool.md to / Completed False Fabrikam
6 2021-09-29 jamalh@fabrikam.com Revert 'Added parameterized-functions.md to /' Abandoned False Fabrikam
5 2021-09-29 jamalh@fabrikam.com Updated README.md Completed False Fabrikam
4 2021-09-29 jamalh@fabrikam.com Added parameterized-functions.md to / Completed False Fabrikam
3 2021-09-28 jamalh@fabrikam.com WIP New file Abandoned False Fabrikam
2 2021-09-28 jamalh@fabrikam.com Update README.md Abandoned False Fabrikam
1 2021-09-28 jamalh@fabrikam.com Edit README.md Completed False Fabrikam
Azure DevOps CLI 命令不支持 Azure DevOps Server。
定义自定义拉取请求视图
筛选 PR 列表有助于查找和组织 PR,以便确定工作流中最重要的文件的优先级。
若要筛选 PR 列表,请在 拉取请求 页上,选择右上角的 筛选器 图标。 然后选择 目标分支 或其他列标题,然后选择要筛选的分支或其他值。
要进一步自定义 PR 列表视图,请选择拉取请求页右上角的自定义视图。
在 自定义视图 页上,可以重新排列当前视图部分、编辑或删除它们。 若要创建新分区,请选择“添加分区”。
在“自定义分区”页上,输入并选择值,以按草稿状态或更新日期等参数筛选分区。 可以选择是“在单独的选项卡上显示我已批准或拒绝的拉取请求”,还是“排除前面分区中包含的拉取请求(重复项)”。 自定义完视图后,选择 保存。
这些自定义视图在拉取请求页上创建单独的可折叠部分。 这些自定义查询也可以在组织主页的 “我的拉取请求”选项卡中跨存储库使用。
若要更改自定义视图的参数,请选择视图旁边的 “自定义”按钮。 或者选择 自定义视图,然后在 “自定义视图” 屏幕上,选择要更改的视图。 某些视图(如 分配给我)无法自定义,但可以重新排列或删除它们。
在 PR 的“文件”选项卡上,可以使用多个筛选器来选择文件和注释,以便加快评审速度。 选择 筛选器,然后在选项之间进行选择。
- 关键字:输入关键字。
- 已评审/未评审:全部(默认值)、待处理、已评审。
- 已注释的文件:“全部”(默认值)、“带注释的文件”。
- 注释:显示(默认值)、新增内容、隐藏。
- 注释状态:活动(默认值)、待处理、已解决、保留原样、不可修复、已关闭。
- 注释者:所有注释(默认值)或特定人员。
还可以在“搜索”字段中键入字符串,以显示上述选项中的匹配结果。
若要筛选来自 Visual Studio 的拉取请求,请执行以下操作:
在 Git 菜单中,选择<你的 Git 服务>>查看拉取请求。
按 作者、标签或其他属性进行筛选。
从团队资源管理器“拉取请求”视图中:
- 选择“活动”或“分配给我或我的团队”,按 PR 状态或分配筛选 PR 列表。
- 或者,在“在此处键入以筛选列表”字段中键入,以按日期、作者、分支或其他属性筛选 PR 列表。
可以使用多个 az repos pr list 参数来筛选 PR 列表,例如 --creator、--project、--repository、--reviewer、--source-branch、--status、--target-branch 和 --top。
--creator 和 --reviewer 值可以是显示名称或电子邮件地址。
--top 参数定义要列出的最大 PR 数。
例如,若要列出所创建的最后一个 PR 的详细信息,无论其状态如何,请使用:
az repos pr list --creator "My Name" --status all --top 1
Azure DevOps CLI 命令不支持 Azure DevOps Server。
打开拉取请求
从浏览器或Azure CLI打开 PR 时,会在浏览器中打开 PR 概述页。 在 Visual Studio 2022 中,选择一个拉取请求后,IDE 会直接打开嵌入式 PR 评审体验。 你仍然可以在浏览器中打开 PR 作为替代方法。
要在浏览器中打开 PR,请从拉取请求页上的列表中选择 PR。 PR 打开到其概述选项卡。概述选项卡上显示 PR 标题、说明、审阅者、链接的工作项、历史记录和状态。 可以查看分支策略是否通过或失败的摘要,并查看审阅者所做的评论。
在“PR 文件”选项卡上,可以查看 PR 文件中的实际更改。 在更新和提交选项卡上,可以看到作者为更新 PR 分支进行的更改。
在 Visual Studio 2022 中,可以直接在 IDE 中打开拉取请求。 在 Git 菜单中,选择 <Git 服务>>视图拉取请求,然后选择拉取请求。 PR 会在 IDE 内嵌的评审体验中打开,你无需签出该分支即可查看描述、更改的文件、提交和评审者。
注意
Visual Studio 2022 中的 IDE 内 PR 评审体验支持内联注释(包括注释线程、回复和解决),显示状态检查、合并冲突和所需的审批,并允许在 IDE 内直接批准并完成或合并拉取请求。 有关完整的评审工作流,请参阅 评审拉取请求。
某些 PR 查看和注释功能可能需要在Visual Studio中启用相关的预览功能。 若要检查,请转到 “工具>选项>预览功能 ”并查找拉取请求相关选项。 启用这些预览选项后,如果默认情况下未显示,即可在 IDE 内使用 PR 功能。 有关可用预览功能的最新信息,请参阅Visual Studio发行说明。
或者,在团队资源管理器拉取请求视图中,右键单击 PR,然后选择在浏览器中打开,在 Web 门户中打开 PR。
签出分支
在 Visual Studio 2019 中,可以直接从拉取请求视图签出 PR 的源分支。 右键单击 PR,然后选择签出源分支。
显示签出源分支的 
注意
Visual Studio 2019 版本 16.8 及更高版本提供了一个 Git 菜单,用于管理 Git 工作流,减少与团队资源管理器相比的上下文切换。 本文中 Visual Studio 选项卡下的过程描述了如何使用 Git 体验和团队资源管理器。 有关详细信息,请参阅 Git 和团队资源管理器并行比较。
要显示单个 PR 的详细信息,请使用 az repos pr show 和必需的 --id 参数。 若要在浏览器中打开 PR,请使用 --open。
az repos pr show --id
[--detect {false, true}]
[--open]
[--org]
[--query-examples]
[--subscription]
参数
| 参数 |
描述 |
--id |
拉取请求的 ID。
必需的。 |
--detect |
自动检测组织。 接受的值:false,true。 |
--open |
在 Web 浏览器中打开拉取请求。 |
--org
--organization
|
Azure DevOps 组织 URL。 可以使用 az devops configure -d organization=<ORG_URL>配置默认组织。
如果未配置为默认或未通过 git 配置选取,则为必需。示例:https://dev.azure.com/MyOrganizationName/。 |
--query-examples |
建议的 JMESPath 字符串。 可以复制其中一个查询,并将其粘贴到 --query 参数后,用双引号查看结果。 可以添加一个或多个位置关键字,以便建议基于这些关键字。 |
--subscription |
Azure 订阅的名称或 ID。 可以使用 az account set -s <NAME_OR_ID>配置默认订阅。 |
例
以下示例显示了 PR #21 的详细信息,以表的形式显示命令输出,并在浏览器中打开 PR:
az repos pr show --id 21 --open --output table
ID Created Creator Title Status IsDraft Repository
---- ---------- ------------------- ---------------------------- -------- --------- ------------
21 2021-10-31 jamalh@fabrikam.com Updated note-new-git-tool.md Active False Fabrikam
签出分支
结合使用 az repos pr checkout 和必需的 --id 参数,以在本地签出 PR 分支,前提是没有进行本地更改。
az repos pr checkout --id
[--remote-name]
[--subscription]
参数
| 参数 |
描述 |
--id |
拉取请求的 ID。 |
--remote-name |
针对其引发 PR 的 git remote 的名称。 默认值:origin。 |
--subscription |
Azure 订阅的名称或 ID。 可以使用 az account set -s <NAME_OR_ID>配置默认订阅。 |
例
例如,若要在本地查看 PR #21 的分支,请使用:
az repos pr checkout --id 21
Azure DevOps CLI 命令不支持 Azure DevOps Server。
要查看更改、进行注释、提出建议,或者批准 PR 或对其进行投票,请参阅评审拉取请求。
使用移动设备查看和更新拉取请求
可以使用移动设备查看所有 Azure Repos PR 屏幕并采取措施。
后续步骤
相关文章