现已发布!阅读关于 11 月新增功能和修复的内容。

在 VS Code 中使用 GitHub

GitHub 是一个基于云的用于存储和共享源代码的服务。在 Visual Studio Code 中使用 GitHub 可以让您在编辑器内直接共享源代码并与他人协作。与 GitHub 交互有多种方式,例如通过其网站 https://github.comGit 命令行界面 (CLI),但在 VS Code 中,丰富的 GitHub 集成由 GitHub Pull Requests and Issues 扩展提供。

在本主题中,我们将演示如何在不离开 VS Code 的情况下使用 GitHub 的一些您最喜欢的功能。

提示

如果您是源代码管理的新手,或者想了解更多关于 VS Code 基本 Git 支持的信息,可以从 源代码管理 主题开始。

先决条件

要在 VS Code 中开始使用 GitHub,您需要

开始使用 GitHub 拉取请求和议题

安装 GitHub Pull Requests and Issues 扩展后,您需要登录。

  1. 在活动栏中选择 GitHub 图标

  2. 选择“**登录**”并按照提示在浏览器中通过 GitHub 进行身份验证

    Screenshot of the GitHub view, showing the sign in button.

  3. 您应该会被重定向回 VS Code

如果未重定向回 VS Code,您可以手动添加您的授权令牌

  1. 在浏览器窗口中,复制您的授权令牌
  2. 在 VS Code 中,选择状态栏中的“**正在登录到 github.com...**”
  3. 粘贴令牌并按 Enter 完成登录过程

设置仓库

克隆仓库

您可以使用命令面板中的“**Git: Clone**”命令 (⇧⌘P (Windows, Linux Ctrl+Shift+P)) 或源代码管理视图中的“**Clone Repository**”按钮(当没有打开文件夹时可用)从 GitHub 搜索并克隆仓库。

从 GitHub 仓库下拉列表中,您可以筛选并选择要本地克隆的仓库。

Screenshot showing the GitHub repository Quick Pick filtered on microsoft/vscode.

了解更多关于 克隆仓库和使用远程仓库 的信息。

对现有仓库进行身份验证

通过 GitHub 进行身份验证会在您在 VS Code 中运行任何需要 GitHub 身份验证的 Git 操作时发生,例如推送到您所属的仓库或克隆私有仓库。您无需安装任何特殊扩展即可进行身份验证;VS Code 内置了此功能,以便您可以高效地管理您的仓库。

当您执行需要 GitHub 身份验证的操作时,VS Code 会提示您登录。按照步骤登录 GitHub 并返回 VS Code。

Screenshot showing the GitHub authentication dialog.

仅支持使用个人访问令牌 (PAT) 登录 GitHub Enterprise Server。如果您正在使用 GitHub Enterprise Server 并想使用 PAT,您可以选择“**取消**”登录提示,直到提示输入 PAT。

请注意,有多种方法可以向 GitHub 进行身份验证,包括使用您的用户名和密码以及双因素身份验证 (2FA)、个人访问令牌或 SSH 密钥。有关每种选项的更多信息和详细信息,请参阅 关于 GitHub 身份验证

注意

如果您想在不将仓库内容克隆到本地计算机的情况下处理某个仓库,可以安装 GitHub Repositories 扩展,直接在 GitHub 上进行浏览和编辑。了解更多关于 GitHub Repositories 扩展 的信息。

编辑器集成

悬停信息

当您打开一个仓库并且用户被 @-提及(例如,在代码注释中)时,您可以将鼠标悬停在该用户名上,并看到一个 GitHub 样式的悬停提示,其中包含用户的详细信息。

Screenshot showing a user hover for a @-mentioned user in a code comment.

对于 #-提及的议题编号、完整的 GitHub 议题 URL 和指定仓库的议题,也有类似的悬停提示。

Screenshot showing a hover for a #-mentioned issue number in a code comment.

建议

用户建议通过键入“@”字符触发,议题建议通过键入“#”字符触发。建议在编辑器和源代码管理提交消息输入框中可用。

GIF showing User and Issue suggestions in the editor.

建议中出现的议题可以通过“**GitHub Issues: Queries**”(githubIssues.queries) 设置进行配置。查询使用 GitHub 搜索语法

您还可以通过使用“**GitHub Issues: Ignore Completion Trigger**”(githubIssues.ignoreCompletionTrigger) 和 “**GitHub Issues: Ignore User Completion Trigger**”(githubIssues.ignoreUserCompletionTrigger) 设置来配置显示这些建议的文件类型。这些设置接受一个 语言标识符 数组来指定文件类型。

// Languages that the '#' character should not be used to trigger issue completion suggestions.
"githubIssues.ignoreCompletionTrigger": [
  "python"
]

拉取请求

从“**Pull Requests**”视图中,您可以查看、管理和创建拉取请求。

Screenshot showing the Pull Request view.

用于显示拉取请求的查询可以通过“**GitHub Pull Requests: Queries**”(githubPullRequests.queries) 设置进行配置,并使用 GitHub 搜索语法

"githubPullRequests.queries": [
    {
        "label": "Assigned To Me",
        "query": "is:open assignee:${user}"
    },

创建拉取请求

在将更改提交到您的 fork 或分支后,您可以使用“**GitHub Pull Requests: Create Pull Request**”命令或“**Pull Requests**”视图中的“**Create Pull Request**”按钮来创建拉取请求。

Screenshot showing the Create Pull Request button in the Pull Request view.

将显示一个新的“**Create**”视图,您可以在其中选择要将拉取请求定位到的目标基础仓库和基础分支,以及填写标题和描述。如果您的仓库有拉取请求模板,它将自动用于描述。

使用顶部的操作栏中的按钮添加“**Assignees**”(分配者)、“**Reviewers**”(审阅者)、“**Labels**”(标签)和“**Milestone**”(里程碑)。

Screenshot showing the Create Pull Request view.

“**Create**”按钮菜单允许您选择替代的创建选项,例如“**Create Draft**”(创建草稿)或启用“**Auto-Merge**”(自动合并)方法。

选择“**Create**”后,如果您尚未将分支推送到 GitHub 远程仓库,扩展会询问您是否要发布分支,并提供一个下拉列表供您选择特定的远程仓库。

“**Create Pull Request**”视图现在进入“**Review Mode**”(审阅模式),您可以在其中审阅 PR 的详细信息、添加注释,并在准备好后合并 PR。PR 合并后,您可以选择删除远程和本地分支。

提示

使用 AI 根据 PR 中包含的提交生成 PR 标题和描述。选择 PR 标题字段旁边的闪光图标以生成 PR 标题和描述。

Screenshot that shows the Generate Commit Message in the commit message input box.

审阅

可以从“**Pull Requests**”视图审阅拉取请求。您可以从拉取请求的“**Description**”(描述)中分配审阅者和标签、添加注释、批准、关闭和合并。

Pull Request Description editor

从“**Description**”页面,您还可以使用“**Checkout**”(检出)按钮轻松地在本地检出拉取请求。这将使 VS Code 切换到审阅模式以打开拉取请求的 fork 和分支(在状态栏中可见),并添加一个新的“**Changes in Pull Request**”(拉取请求中的更改)视图,您可以在其中查看当前更改的 diff 以及所有提交及其内的更改。有注释的文件会用菱形图标装饰。要查看磁盘上的文件,可以使用“**Open File**”(打开文件)内联操作。

Changes in Pull Request view

此视图中的 diff 编辑器使用本地文件,因此文件导航、IntelliSense 和编辑均正常工作。您可以在这些 diff 的编辑器中添加注释。支持添加单个注释和创建完整的审阅。

审阅完拉取请求更改后,您可以合并 PR 或选择“**Exit Review Mode**”(退出审阅模式)以返回您之前正在处理的分支。

提示

您还可以 使用 AI 在创建 PR 之前对其进行代码审阅。在 GitHub Pull Request 视图中选择“**Code Review**”(代码审阅)按钮。

议题

创建议题

议题可以从“**Issues**”视图中的“**+**”按钮创建,以及使用“**GitHub Issues: Create Issue from Selection**”(从选区创建 GitHub 议题)和“**GitHub Issues: Create Issue from Clipboard**”(从剪贴板创建 GitHub 议题)命令创建。它们也可以使用“TODO”注释的代码操作来创建。创建议题时,您可以采用默认描述,或选择右上角的“**Edit Description**”(编辑描述)铅笔图标来打开议题正文的编辑器。

Create Issue from TODO

您可以使用“**GitHub Issues: Create Issue Triggers**”(githubIssues.createIssueTriggers) 设置来配置代码操作的触发器。

默认的议题触发器是

"githubIssues.createIssueTriggers": [
  "TODO",
  "todo",
  "BUG",
  "FIXME",
  "ISSUE",
  "HACK"
]

处理议题

从“**Issues**”视图中,您可以查看您的议题并进行处理。

Issue view with hover

默认情况下,当您开始处理某个议题(**Start Working on Issue** - 开始处理议题上下文菜单项)时,会为您创建一个分支,如下面的状态栏图像所示。

Work on Issue

状态栏还显示当前活动的议题,如果您选择该项目,则会出现一个议题操作列表,例如在 GitHub 网站上打开议题或创建拉取请求。

Issue Status Bar actions

您可以使用“**GitHub Issues: Issue Branch Title**”(githubIssues.issueBranchTitle) 设置来配置分支名称。如果您的工作流程不涉及创建分支,或者您想每次都提示输入分支名称,则可以通过关闭“**GitHub Issues: Use Branch For Issues**”(githubIssues.useBranchForIssues) 设置来跳过此步骤。

提示

了解更多关于 处理分支 的信息,以了解分支管理、切换分支和组织您的开发工作。

完成议题处理并要提交更改时,**Source Control** 视图中的提交消息输入框将填充一条消息,该消息可以通过 “**GitHub Issues: Working Issue Format SCM**”(githubIssues.workingIssueFormatScm) 进行配置。

GitHub Repositories 扩展

使用 GitHub Repositories 扩展,您可以直接在 Visual Studio Code 中快速浏览、搜索、编辑和提交任何远程 GitHub 仓库,而无需在本地克隆仓库。这对于许多场景来说非常快速方便,您只需要查看源代码或对文件或资源进行少量更改。

GitHub Repositories extension

打开仓库

安装 GitHub Repositories 扩展后,您可以通过命令面板中的“**GitHub Repositories: Open Repository...**”命令 (⇧⌘P (Windows, Linux Ctrl+Shift+P)) 或单击状态栏左下角的 Remote 指示器来打开仓库。

Remote indicator in the Status Bar

运行“**Open Repository**”(打开仓库)命令后,您将选择是从 GitHub 打开仓库、从 GitHub 打开拉取请求,还是重新打开您之前连接过的仓库。

如果您之前未在 VS Code 中登录过 GitHub,系统将提示您通过 GitHub 帐户进行身份验证。

GitHub Repository extension open repository dropdown

您可以直接提供仓库 URL,或者通过在文本框中输入来搜索您想要的 GitHub 仓库。

选择仓库或拉取请求后,VS Code 窗口将重新加载,您将在文件资源管理器中看到仓库内容。然后,您可以像处理本地克隆的仓库一样打开文件(具有完整的语法高亮和括号匹配)、进行编辑和提交更改。

与本地仓库工作的一个区别是,当您使用 GitHub Repository 扩展提交更改时,更改会直接推送到远程仓库,类似于在 GitHub Web 界面中工作。

GitHub Repositories 扩展的另一项功能是,每次打开仓库或分支时,您都可以获得 GitHub 上最新的源代码。您无需像本地仓库那样记住拉取以刷新。

GitHub Repositories 扩展支持查看甚至提交 LFS(大文件系统)跟踪的文件,而无需在本地安装 Git LFS。将您想用 LFS 跟踪的文件类型添加到 .gitattributes 文件,然后直接使用源代码管理视图将更改提交到 GitHub。

切换分支

您可以通过单击状态栏中的分支指示器轻松地在分支之间切换。GitHub Repositories 扩展的一个很棒的功能是,您可以切换分支而不必暂存未提交的更改。扩展会记住您的更改,并在您切换分支时重新应用它们。

Branch indicator on the Status Bar

远程资源管理器

您可以通过活动栏上的远程资源管理器快速重新打开远程仓库。此视图显示了您之前打开的仓库和分支。

Remote Explorer view

创建拉取请求

如果您的工作流程使用拉取请求而不是直接提交到仓库,您可以从源代码管理视图创建新的 PR。系统会提示您提供标题并创建一个新分支。

Create a Pull Request button in the Source Control view

创建拉取请求后,您可以使用 GitHub Pull Request and Issues 扩展进行审阅、编辑和合并您的 PR,具体描述如本主题“更早”部分所述。

虚拟文件系统

在没有本地计算机上的仓库文件的情况下,GitHub Repositories 扩展会在内存中创建一个虚拟文件系统,以便您可以查看文件内容并进行编辑。使用虚拟文件系统意味着某些假定本地文件的操作和扩展将无法启用或功能受限。任务、调试和集成终端等功能将无法启用,您可以通过远程指示器悬停中的“**features are not available**”(功能不可用)链接了解虚拟文件系统的支持级别。

Remote indicator hover with features are not available link

扩展作者可以在 Virtual Workspaces 扩展作者指南 中了解更多关于在虚拟文件系统和工作区中运行的信息。

继续处理

有时您会想切换到在支持本地文件系统和完整语言及开发工具的环境中处理某个仓库。GitHub Repositories 扩展可以轻松地让您

要切换开发环境,请使用“**Continue Working On**”(继续处理)命令,该命令可通过命令面板 (⇧⌘P (Windows, Linux Ctrl+Shift+P)) 或单击状态栏中的远程指示器访问。

Continue Working On command in Remote dropdown

如果您正在使用 基于浏览器的编辑器,“**Continue Working On**”(继续处理)命令提供了在本地或在 GitHub Codespaces 的云托管环境中打开仓库的选项。

Continue Working On from web-based editor

首次使用“**Continue Working On**”(继续处理)并存在未提交的更改时,您将可以选择使用 **Cloud Changes**(云端更改)将您的编辑带到所选的开发环境,它会将您待处理的更改存储在用于设置同步的相同 VS Code 服务上。

这些更改在应用到目标开发环境后将从我们的服务中删除。如果您选择在没有未提交更改的情况下继续,则可以通过配置设置 "workbench.cloudChanges.continueOn": "prompt" (提示) 随时更改此偏好设置。

如果您的待处理更改未自动应用到目标开发环境,您可以使用“**Cloud Changes: Show Cloud Changes**”(云端更改:显示云端更改)命令来查看、管理和删除已存储的更改。

后续步骤

© . This site is unofficial and not affiliated with Microsoft.