在 VS Code 中使用 GitHub

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

安装 GitHub Pull 请求和问题扩展

要开始在 VS Code 中使用 GitHub,您需要安装Git创建 GitHub 帐户并安装GitHub Pull Requests and Issues扩展。在本主题中,我们将演示如何在不离开 VS Code 的情况下使用 GitHub 中您最喜欢的一些部分。

如果您不熟悉源代码控制或想要了解有关 VS Code 基本 Git 支持的更多信息,可以从源代码控制主题开始。

GitHub 拉取请求和问题入门

安装GitHub Pull Requests and Issues扩展后,您需要登录。按照提示在浏览器中使用 GitHub 进行身份验证,然后返回 VS Code。

分机登录

如果您没有重定向到 VS Code,您可以手动添加授权令牌。在浏览器窗口中,您将收到授权令牌。复制令牌,然后切换回 VS Code。在状态栏中选择Signing in to github.com...,粘贴令牌,然后按Enter

设置存储库

克隆存储库

您可以使用命令面板中的Git:克隆命令 ( ⇧⌘P (Windows、Linux Ctrl+Shift+P ) ) 或使用源代码管理视图中的克隆存储库按钮(在以下情况下可用)从 GitHub 搜索并克隆存储库:您没有打开文件夹)。

源代码管理视图中的克隆存储库按钮

从 GitHub 存储库下拉列表中,您可以过滤并选择要在本地克隆的存储库。

GitHub 存储库下拉列表在 microsoft/vscode 上过滤

使用现有存储库进行身份验证

当您在 VS Code 中运行任何需要 GitHub 身份验证的 Git 操作(例如推送到您所属的存储库或克隆私有存储库)时,就会通过 GitHub 启用身份验证。您不需要安装任何特殊的扩展来进行身份验证;它内置于 VS Code 中,以便您可以有效地管理您的存储库。

当您执行需要 GitHub 身份验证的操作时,您会看到登录提示:

认证提示

按照步骤登录 GitHub 并返回 VS Code。如果使用现有存储库进行身份验证无法自动进行,您可能需要手动提供个人访问令牌。有关详细信息,请参阅个人访问令牌身份验证。

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

注意:如果您想使用存储库而不将内容克隆到本地计算机,则可以安装GitHub 存储库扩展以直接在 GitHub 上浏览和编辑。您可以在下面的GitHub 存储库扩展部分了解更多信息。

编辑器集成

悬停

当您打开存储库并且@提及用户时,您可以将鼠标悬停在该用户名上并看到 GitHub 样式的悬停。

用户悬停

对于 # 提到的问题编号、完整的 GitHub 问题 URL 和存储库指定的问题,也有类似的悬停。

问题悬停

建议

用户建议由“@”字符触发,问题建议由“#”字符触发。编辑器和源代码管理视图的输入框中提供了建议。

用户和问题建议

建议中出现的问题可以使用GitHub 问题:查询( githubIssues.queries)设置进行配置。查询使用GitHub 搜索语法

您还可以使用设置GitHub 问题:忽略完成触发器( githubIssues.ignoreCompletionTrigger) 和GitHub 问题:忽略用户完成触发器( githubIssues.ignoreUserCompletionTrigger) 配置显示这些建议的文件。这些设置采用一组语言标识符来指定文件类型。

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

拉取请求

拉取请求视图中,您可以查看、管理和创建拉取请求。

拉取请求视图

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

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

创建拉取请求

将更改提交到分支或分支后,您可以使用GitHub Pull 请求:创建 Pull 请求命令或Pull 请求视图中的创建 Pull 请求按钮来创建 Pull 请求。

“拉取请求”视图中的“创建拉取请求”按钮

将显示一个新的创建视图,您可以在其中选择您希望拉取请求定位的基本存储库和基本分支,并填写标题和描述。如果您的存储库有拉取请求模板,它将自动用于描述。

使用顶部操作栏中的按钮添加受让人审阅者标签里程碑

创建拉取请求视图

“创建”按钮菜单允许您选择替代创建选项,例如“创建草稿”或启用“自动合并”方法。

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

Create Pull Request视图现在进入Review Mode,您可以在其中查看 PR 的详细信息、添加评论,并在 PR 准备好后合并 PR。PR 合并后,您可以选择删除远程和本地分支。

审阅

可以从拉取请求视图中查看拉取请求。您可以分配审阅者和标签、添加评论、批准、关闭和合并拉取请求Description中的所有内容。

拉取请求描述编辑器

“描述”页面中,您还可以使用“签出”按钮轻松在本地签出拉取请求。这将切换 VS Code 以在审阅模式下打开拉取请求的分叉和分支(在状态栏中可见),并在拉取请求视图中添加新的更改,您可以从中查看当前更改的差异以及所有提交和这些提交中的更改。已评论的文件会用菱形图标装饰。要查看磁盘上的文件,您可以使用“打开文件”内联操作。

拉取请求视图中的更改

此视图中的差异编辑器使用本地文件,因此文件导航、IntelliSense 和编辑可以正常工作。您可以在编辑器中添加关于这些差异的评论。支持添加单个评论和创建整个评论。

审查完拉取请求更改后,您可以合并 PR 或选择“退出审查模式”以返回到您正在处理的上一个分支。

问题

制造问题

可以通过问题视图中的+按钮以及使用GitHub 问题:从选择创建问题GitHub 问题:从剪贴板创建问题命令来创建问题。它们还可以使用“TODO”注释的代码操作来创建。创建问题时,您可以采用默认描述或选择右上角的编辑描述铅笔图标以打开问题正文的编辑器。

从 TODO 创建问题

您可以使用GitHub 问题:创建问题触发器( ) 设置来配置代码操作的触发器githubIssues.createIssueTriggers

默认问题触发器是:

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

处理问题

问题视图中,您可以查看您的问题并进行处理。

悬停时的问题视图

默认情况下,当您开始处理问题(开始处理问题上下文菜单项)时,将为您创建一个分支,如下图状态栏中所示。

解决问题

状态栏还显示活动问题,如果您选择该项目,则可以使用问题操作列表,例如在 GitHub 网站上打开问题或创建拉取请求。

问题 状态栏操作

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

完成问题处理并想要提交更改后,“源代码管理”视图中的提交消息输入框将填充一条消息,可以使用GitHub Issues:工作问题格式 SCM ( githubIssues.workingIssueFormatScm) 配置该消息。

GitHub 存储库扩展

GitHub存储库扩展允许您直接从 Visual Studio Code 中快速浏览、搜索、编辑和提交到任何远程 GitHub 存储库,而无需在本地克隆存储库。对于许多场景来说,这可以是快速和方便的,在这些场景中,您只需要查看源代码或对文件或资产进行小的更改。

GitHub 存储库扩展

打开存储库

安装 GitHub 存储库扩展后,您可以使用GitHub 存储库:打开存储库...命令从命令面板 ( ⇧⌘P (Windows、Linux Ctrl+Shift+P ) ) 或单击远程指示器来打开存储库在状态栏的左下角。

状态栏中的远程指示灯

当您运行“打开存储库”命令时,您可以选择是从 GitHub 打开存储库、从 GitHub 打开拉取请求还是重新打开之前连接到的存储库。

如果您之前没有从 VS Code 登录过 GitHub,系统会提示您使用 GitHub 帐户进行身份验证。

GitHub 存储库扩展打开存储库下拉列表

您可以直接提供存储库 URL,也可以通过在文本框中键入内容来搜索 GitHub 来查找所需的存储库。

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

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

GitHub 存储库扩展的另一个功能是,每次打开存储库或分支时,您都可以从 GitHub 获取最新的源代码。您不需要像使用本地存储库那样记住拉动刷新。

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

切换分支

您可以通过单击状态栏中的分支指示器轻松地在分支之间切换。GitHub 存储库扩展的一项重要功能是您可以切换分支,而无需存储未提交的更改。该扩展会记住您的更改,并在您切换分支时重新应用它们。

状态栏上的分支指示器

远程浏览器

您可以使用活动栏上的远程资源管理器快速重新打开远程存储库。此视图向您显示之前打开的存储库和分支。

远程资源管理器视图

创建拉取请求

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

在源代码管理视图中创建拉取请求按钮

创建拉取请求后,您可以使用GitHub 拉取请求和问题扩展来查看、编辑和合并您的 PR,如本主题前面所述。

虚拟文件系统

如果本地计算机上没有存储库文件,GitHub 存储库扩展会在内存中创建一个虚拟文件系统,以便您可以查看文件内容并进行编辑。使用虚拟文件系统意味着某些假定本地文件的操作和扩展未启用或功能有限。任务、调试和集成终端等功能未启用,您可以通过远程指示器悬停中的功能不可用链接了解对虚拟文件系统的支持级别。

远程指示器悬停且功能不可用链接

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

继续工作...

有时您会希望切换到在支持本地文件系统以及完整语言和开发工具的开发环境中处理存储库。GitHub 存储库扩展使您可以轻松地:

要切换开发环境,请使用命令面板中的“继续工作...”命令 ( ⇧⌘P (Windows、Linux Ctrl+Shift+P ) ) 或单击状态栏中的远程指示器。

继续处理远程下拉列表中的命令

如果您使用基于浏览器的编辑器“继续工作...”命令可以选择在本地或GitHub Codespaces中的云托管环境中打开存储库。

从基于网络的编辑器继续工作

第一次对未提交的更改使用“继续工作”时,您可以选择使用Cloud Changes将编辑内容带到所选的开发环境中,Cloud Changes 使用 VS Code 服务来存储待处理的更改。

这些更改一旦应用于您的目标开发环境,就会从我们的服务中删除。如果您选择继续而不进行未提交的更改,则以后可以随时通过配置设置来更改此首选项"workbench.cloudChanges.continueOn": "prompt"

GitHub 副驾驶

在 VS Code 中,您可以使用人工智能 (AI) 增强编码,例如对代码行或整个函数的建议、快速文档创建以及帮助创建与代码相关的工件(例如测试)。

GitHub Copilot是一款基于 AI 的代码完成工具,可帮助您更快、更智能地编写代码。您可以使用VS Code 中的GitHub Copilot 扩展来生成代码,或从它生成的代码中学习。

VS Code Marketplace 中的 GitHub Copilot 扩展

您可以在Copilot 文档中了解有关如何开始使用 Copilot 的更多信息。