在 VS Code 中使用 GitHub
GitHub 是一个基于云的代码存储和共享服务。使用 GitHub 和 Visual Studio Code 可以让你在编辑器内直接分享代码并与其他协作。有许多方式与 GitHub 互动,例如通过他们的网站 https://github.com 或 Git 命令行界面 (CLI),但在 VS Code 中,丰富的 GitHub 集成是由 GitHub Pull Requests and Issues 扩展提供的。
在这个主题中,我们将展示如何在 VS Code 中使用 GitHub 的一些你最喜欢的功能而无需离开 VS Code。
如果您是源代码管理的新手,或者想了解更多关于 VS Code 基本 Git 支持的信息,您可以从 源代码管理 主题开始。
先决条件
要开始在 VS Code 中使用 GitHub,您需要:
-
您的计算机上已经安装了Git。安装Git版本2.0.0或更高版本在您的机器上。
-
一个GitHub账户.
-
该GitHub 拉取请求和问题扩展已安装在 VS Code 中。
-
当你提交更改时,Git 会使用你配置的用户名和电子邮件。你可以通过以下命令设置这些值:
git 配置 --全局 用户名 "你的名字" git 配置 --全局 用户邮箱 "your.email@example.com"
开始使用 GitHub 拉取请求和问题
一旦你安装了GitHub 拉取请求和问题扩展,你需要登录。
-
在活动栏中选择 GitHub 图标
-
选择 登录,然后按照提示在浏览器中与 GitHub 进行身份验证

-
你应该被重定向回 VS Code
如果你没有被重定向到 VS Code,你可以手动添加你的授权令牌:
- 在浏览器Windows中,复制您的授权令牌
- 在 VS Code 中,选择状态栏中的 正在登录 github.com...
- 粘贴令牌并按回车以完成登录过程
设置仓库
克隆仓库
你可以在命令面板中使用Git: 克隆命令从GitHub克隆一个仓库(⇧⌘P(Windows, Linux Ctrl+Shift+P))或者通过源代码控制视图中的克隆仓库按钮来克隆一个仓库(仅在没有打开任何文件夹时可用)。
从 GitHub 仓库下拉菜单中,您可以筛选并选择要克隆到本地的仓库。

了解更多关于 克隆仓库和处理远程仓库的信息。
使用现有存储库进行身份验证
通过 GitHub 启用身份验证是在你运行 VS Code 中任何需要 GitHub 身份验证的 Git 操作时发生,例如推送到你属于的仓库或克隆私有仓库。你不需要安装任何特殊的扩展来启用身份验证;它已经内置在 VS Code 中,这样你就可以高效地管理你的仓库。
当你执行需要 GitHub 认证的操作时,VS Code 会提示你登录。请按照步骤登录 GitHub 并返回 VS Code。

使用个人访问令牌(PAT)登录仅支持 GitHub Enterprise Server。如果您使用 GitHub Enterprise Server 并希望使用 PAT,您可以在登录提示中选择 取消,直到被要求输入 PAT。
请注意,有多种方式可以对 GitHub 进行身份验证,包括使用用户名和密码配合双重身份验证(2FA)、个人访问令牌或 SSH 密钥。请参阅关于对 GitHub 进行身份验证的更多信息和每个选项的详细信息。
如果您希望在不将内容克隆到本地机器的情况下对仓库进行操作,可以安装 GitHub 仓库 扩展以直接在 GitHub 上浏览和编辑。了解更多关于 GitHub 仓库扩展 的信息。
编辑器集成
悬浮
当你有一个仓库打开,并且有一个用户被@提及(例如,在代码注释中),你可以将鼠标悬停在这个用户名上,看到一个显示用户详细信息的GitHub样式悬停。

对于提到的 issue 编号、完整的 GitHub issue URL 和指定的仓库 issues,也有类似的悬停效果。

建议
用户建议通过输入“@”字符触发,而问题建议通过输入“#”字符触发。建议可在编辑器和源代码控制提交信息输入框中使用。

建议中出现的问题可以通过 GitHub Issues: Queries 配置 (
您还可以通过使用设置来配置哪些文件类型会显示这些建议GitHub Issues: 忽略完成触发器 (
// 不应使用'#'字符来触发问题完成建议的语言。
"githubIssues.ignoreCompletionTrigger": [
"python"
]
拉取请求
从拉取请求视图中,您可以查看、管理和创建拉取请求。

用于显示拉取请求的查询可以通过 GitHub 拉取请求:查询 进行配置 (
"githubPullRequests.queries": [
{
"label": "已分配给我",
"query": "是:打开 赋责人:${user}"
},
创建拉取请求
一旦你已经提交了对你的分支或拉取请求的更改,你可以使用GitHub 拉取请求:创建拉取请求命令或创建拉取请求按钮在拉取请求视图中创建一个拉取请求。

一个新创建视图将显示,您可以在其中选择您希望拉取请求的目标基础存储库和基础分支,并填写标题和描述。如果您的存储库有拉取请求模板,这将自动用于描述。
使用工具栏顶部的按钮添加指派者、审查者、Tab和里程碑。

创建按钮菜单允许您选择替代的创建选项,例如创建草稿或启用自动合并方法。
一旦你选择 创建,如果你还没有将你的分支推送到 GitHub 远程分支,该扩展将询问你是否希望发布该分支,并提供一个下拉菜单来选择特定的远程分支。
该创建拉取请求视图现在进入审查模式,您可以在此处审查PR的详细信息,添加评论,并在准备好后合并PR。合并PR后,您将有选项删除远程和本地分支。
使用AI生成PR标题和描述,基于PR中包含的提交。选择PR标题字段旁边的闪烁图标以生成PR标题和描述。

审查
拉取请求可以从拉取请求视图中进行审查。您可以在拉取请求描述中分配审查人员和标签、添加评论、批准、关闭和合并。

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

此视图中的差异编辑器使用本地文件,因此文件导航、IntelliSense 和编辑工作正常。您可以在这些差异中直接在编辑器中添加注释。支持添加单个注释和创建整个审查。
当您完成对拉取请求更改的审查后,您可以合并PR或选择退出审查模式以返回到之前您在其中工作的分支。
你也可以在创建之前使用AI对PR进行代码审查。选择 代码审查 按钮在GitHub Pull Request视图中。
问题
创建问题
可以在 + 按钮中从 问题 视图创建问题,并使用 GitHub Issues: 从选择创建问题 和 GitHub Issues: 从剪贴板创建问题 命令。您还可以通过代码行为来创建“TODO”注释的问题。在创建问题时,您可以使用默认描述或点击右上角的 编辑描述 笔图标以打开问题主体的编辑器。

您可以使用 GitHub Issues: Create Issue Triggers 来配置代码操作的触发器 (
默认的触发问题的触发器是:
"githubIssues.createIssueTriggers": [
"待办事项",
"待办",
"错误",
"修复",
"问题",
"黑客"
]
正在处理问题
从问题视图中,您可以查看您的问题并进行处理。

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

状态栏还显示当前活动的问题,如果你选择该条目,可以执行诸如在GitHub网站上打开问题或创建拉取请求等操作。

您可以使用 GitHub Issues: Issue Branch Title 配置分支名称 (
了解更多关于使用分支的信息,以了解分支管理、在分支之间切换以及组织您的开发工作。
一旦你完成对问题的处理并希望提交更改,源代码管理视图中的提交信息输入框将填充一条消息,该消息可以使用 GitHub Issues: Working Issue Format SCM 配置 (
GitHub 仓库扩展
该GitHub 仓库扩展允许您直接从 Visual Studio Code 内部快速浏览、搜索、编辑和提交任何远程 GitHub 仓库,而无需在本地克隆仓库。这对于许多仅需查看源代码或对文件或资产进行小更改的场景来说既快速又方便。

打开仓库
一旦你安装了GitHub Repositories扩展,你就可以通过命令面板打开一个仓库GitHub Repositories: Open Repository...命令(⇧⌘P(Windows, Linux Ctrl+Shift+P))或通过点击状态栏左下角的远程指示器来打开一个仓库。

当你运行打开仓库命令时,你可以选择从GitHub打开一个仓库,从GitHub打开一个拉取请求,或者重新打开一个你之前连接过的仓库。
如果您之前没有在 VS Code 中登录 GitHub,系统将提示您使用您的 GitHub 帐户进行身份验证。

您可以直接提供仓库网址,或者在文本框中输入要搜索的仓库名称。
一旦你选择了仓库或拉取请求,VS Code Windows将重新加载,并且你会在文件资源管理器中看到仓库的内容。然后你可以像在本地克隆仓库上工作一样打开文件(具有完整的语法高亮和括号匹配)、进行编辑和提交更改。
与使用本地仓库工作的一个不同之处是,当您通过 GitHub 仓库扩展提交更改时,更改会直接推送到远程仓库,类似于您在 GitHub 网页界面中工作的方式。
GitHub 仓库扩展的另一个特点是,每次打开仓库或分支时,您都会获得来自 GitHub 的最新来源。您不需要像对待本地仓库一样记住拉取以进行刷新。
GitHub 仓库扩展支持查看甚至提交 LFS 跟踪的文件,而无需在本地安装 Git LFS(大型文件系统)。将您希望用 LFS 跟踪的文件类型添加到 .gitattributes 文件,然后直接使用源代码控制视图将更改提交到 GitHub。
切换分支
您可以通过点击状态栏中的分支指示器轻松切换分支。GitHub 仓库扩展的一个很棒的功能是,您可以切换分支而无需暂存未提交的更改。该扩展会记住您的更改,并在您切换分支时重新应用这些更改。

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

创建拉取请求
如果您的工作流程使用拉取请求,而不是直接向存储库提交更改,您可以从源代码控制视图中创建一个新的拉取请求。系统会提示您提供标题并创建一个新分支。

一旦你创建了一个拉取请求,你可以使用GitHub 拉取请求和问题扩展来审查、编辑和合并你的 PR,如前面所述的本主题。
虚拟文件系统
没有在本地机器上存储仓库文件的情况下,GitHub 仓库扩展在内存中创建一个虚拟文件系统,以便您可以查看文件内容并进行编辑。使用虚拟文件系统意味着一些假定本地文件的操作和扩展将无法启用或功能有限。任务、调试和集成终端等功能将无法启用,您可以通过远程指示器悬停的链接了解虚拟文件系统的支持水平。功能不可用。

扩展作者可以在虚拟工作区扩展作者指南中了解更多关于在虚拟文件系统和工作区中运行的信息。
继续进行
有时您可能希望切换到在开发环境中使用支持本地文件系统和完整语言及开发工具的存储库进行工作。GitHub 存储库扩展使您可以轻松地:
- 创建一个 GitHub 代码空间(如果你有 GitHub 代码空间扩展)。
- 在本地克隆仓库。
- 将代码库克隆到一个Docker容器中(如果你有Docker和Microsoft Container Tools扩展安装)。
要切换开发环境,请使用继续在命令,该命令可在命令面板中找到 (⇧⌘P(Windows, Linux Ctrl+Shift+P))或通过点击状态栏中的远程指示器。

如果您正在使用基于浏览器的编辑器,“继续在”命令有选项在本地打开仓库或在GitHub Codespaces中的云托管环境中打开。

第一次使用继续在上进行更改时,您将有选项使用云更改将您的编辑带到您选择的开发环境中,该服务用于存储您的待处理更改,与设置同步使用相同的VS Code服务。
这些更改在应用到您的目标开发环境后将从我们的服务中删除。如果您选择不保存您的未提交更改,您可以随时通过配置设置更改此偏好设置。"workbench.cloudChanges.continueOn": "提示"输入:.
如果您的待处理更改未自动应用到目标开发环境,您可以使用Cloud Changes: Show Cloud Changes命令查看、管理和删除您的存储更改。
下一步
- 了解更多关于VS Code 中的 AI - 了解 VS Code 中的 AI 功能。