Visual Studio Blog

Today I will… review GitHub PRs

8.5内容质量
Today I will… review GitHub PRs

TL;DR · AI 摘要

Visual Studio 2023提供GitHub PR审查全流程支持,集成Copilot提升协作效率,实现零切换审查体验。

核心要点

  • 使用Ctrl+Shift+P快捷键可快速访问GitHub PR列表
  • Copilot可添加至审查会话实现代码意图解析
  • Open in New Tab功能提升多文件审查效率

结构提纲

按章节快速跳转。

  1. 介绍PR审查作为开发团队的核心任务

  2. 通过Git→GitHub→View Pull Requests路径加载PR列表

  3. Copilot协作集成

    支持将PR添加至Copilot会话进行代码解析

  4. 展示文件差异、注释添加及代码导航功能

  5. Open in New Tab功能提升多窗口操作效率

  6. 集成GitHub策略的批准与自动合并功能

思维导图

用一张图看清主题之间的关系。

查看大纲文本(无障碍 / 无 JS 友好)
  • Visual Studio GitHub PR审查流程
    • PR获取
      • Git工具集成
      • Copilot生成PR
    • 审查操作
      • 文件差异查看
      • 注释系统
      • 代码导航
    • 协作增强
      • Copilot集成
      • 自动合并策略

金句 / Highlights

值得收藏与分享的关键句。

#Visual Studio#GitHub#PR审查#Copilot#开发工具
打开原文

今天我将...审查 GitHub 拉取请求 - Visual Studio 博客

今天我将向您展示如何在开发团队协作或管理开源项目时,如何处理最常见的一项任务——处理拉取请求(Pull Requests)。

虽然我们将使用 Visual Studio 内置的 GitHub 工具进行演示,但使用 Azure DevOps 的操作流程也非常相似。

获取我们的拉取请求

首先打开仓库的拉取请求。选择 Git → GitHub → 查看拉取请求。你也可以通过 Ctrl+Shift+P 打开命令面板搜索该命令。

此时,Visual Studio 会加载仓库中的所有拉取请求,并按以下方式分组:分配给我的拉取请求、仓库中的所有拉取请求,以及 Copilot 代表我创建的拉取请求。

现在选择其中一个拉取请求并开始审查。

处理拉取请求

打开拉取请求后,它会显示在“查看拉取请求”标签页的主区域。但我更喜欢点击“在新标签页中打开”选项,这样可以将它单独打开在一个新标签页中,最大化屏幕空间。

在拉取请求视图中,左侧有文件浏览器,主窗口初始会显示拉取请求的概览,我可以阅读描述、查看当前的评论,并添加自己的评论。

点击文件列表中的文件,会显示该文件的差异视图。由于我们在 Visual Studio 中,会获得 C# 的语法高亮,以及打开文件时所有类型的列表。

当查看的文件包含修改内容而非新文件时,可以选择查看完整文件,或查看摘要视图。摘要视图会折叠未修改的行,仅保留修改部分。这在查看长文件时非常有用,可以避免过多滚动。

我们可以通过点击行号旁的空白区域(或先选择多行),然后打开内联评论窗口来对文件进行注释。Visual Studio 会将我们的评论缓存,直到提交审查。

批准与合并

这个拉取请求看起来没问题,可以合并到主分支。在 Visual Studio 中,点击右上角的“批准”按钮,即可在 GitHub 上更新其状态。

旁边的选项允许你合并拉取请求或在等待其他检查时配置自动合并。这些选项遵循仓库配置的策略。

引入 Copilot

在审查拉取请求时,我们可能希望让 Copilot 作为协作者参与。比如,我们可能希望对某些更改进行“橡皮鸭式”审查,或询问 Copilot 关于解决方案的问题。为此,右键点击活动拉取请求列表中的拉取请求,选择“添加到聊天”;或者从 Copilot 会话中使用 #pullrequest:<id> 命令。这两种方式都会将拉取请求作为上下文添加到当前会话中。

现在你可以继续与 Copilot 协作,它将能够根据当前工作内容访问该拉取请求的上下文信息。

总结

审查和处理拉取请求是开发人员的日常任务,无论他们是在开源项目上工作,还是在组织内部协作。通过 Visual Studio,我们可以在统一的体验中完成所有操作,避免在不同工具之间切换时的上下文切换。这也意味着 Visual Studio 的集成功能(如语法高亮和成员层次结构)可以无缝应用。

.entry-content

AI 声明 /think