在 VS Code 中使用 GitHub
GitHub 是一种基于云的代码存储和共享服务。在 Visual Studio Code 中使用 GitHub 允许您共享源代码并在编辑器中与他人协作。有多种方法可以与 GitHub 交互,例如通过其网站 https://github.com 或 Git 命令行界面 (CLI),但在 VS Code 中,丰富的 GitHub 集成由 GitHub Pull Request 和 Issue 扩展提供。
安装 GitHub Pull Request 和 Issue 扩展
要开始在 VS Code 中使用 GitHub,您需要安装 Git、创建 GitHub 帐户 并安装 GitHub Pull Request 和 Issue 扩展。在本主题中,我们将演示如何在不离开 VS Code 的情况下使用 GitHub 的部分功能。
如果您不熟悉源代码管理或想了解有关 VS Code 的基本 Git 支持的更多信息,可以从 源代码管理 主题开始。
GitHub Pull Request 和 Issue 入门
安装 GitHub Pull Request 和 Issue 扩展后,您需要登录。按照提示使用浏览器中的 GitHub 进行身份验证并返回 VS Code。
如果您没有被重定向到 VS Code,则可以手动添加授权令牌。在浏览器窗口中,您将收到授权令牌。复制令牌并切换回 VS Code。在状态栏中选择登录 github.com...,粘贴令牌,然后按 Enter。
设置存储库
克隆存储库
您可以使用命令面板中的Git: 克隆命令(⇧⌘P(Windows、Linux Ctrl+Shift+P))或使用源代码管理视图中的克隆存储库按钮(在没有打开文件夹时可用)从 GitHub 搜索和克隆存储库。
从 GitHub 存储库下拉列表中,您可以筛选并选择要克隆到本地的存储库。
使用现有存储库进行身份验证
当您在 VS Code 中运行任何需要 GitHub 身份验证的 Git 操作时,例如推送到您是成员的存储库或克隆私有存储库,就会启用通过 GitHub 进行身份验证。您无需安装任何特殊扩展来进行身份验证;它内置在 VS Code 中,以便您可以高效地管理存储库。
当您执行需要 GitHub 身份验证的操作时,您将看到一个登录提示
按照步骤登录 GitHub 并返回 VS Code。仅当使用 GitHub Enterprise Server 时,才支持使用个人访问令牌 (PAT) 进行登录。如果您正在使用 GitHub Enterprise Server 并想要使用 PAT,则可以在登录提示中一直点击“取消”,直到提示您输入 PAT。
请注意,有多种方法可以对 GitHub 进行身份验证,包括使用您的用户名和密码以及双因素身份验证 (2FA)、个人访问令牌或 SSH 密钥。有关更多信息和有关每个选项的详细信息,请参阅 关于对 GitHub 进行身份验证。
注意:如果您想在不将内容克隆到本地计算机的情况下处理存储库,则可以安装 GitHub 存储库 扩展,以直接在 GitHub 上浏览和编辑。您可以在下面的 GitHub 存储库扩展 部分中了解有关此扩展的更多信息。
编辑器集成
悬停
当您打开存储库并且用户被 @-提及时,您可以将鼠标悬停在该用户名上,并查看 GitHub 风格的悬停。
对于 #-提及的 Issue 编号、完整的 GitHub Issue URL 和存储库指定的 Issue,也有类似的悬停。
建议
用户建议由“@”字符触发,Issue 建议由“#”字符触发。建议在编辑器和源代码管理视图的输入框中可用。
出现在建议中的 Issue 可以使用GitHub Issue:查询(githubIssues.queries)设置 进行配置。这些查询使用 GitHub 搜索语法。
您还可以使用设置GitHub Issue:忽略完成触发器(githubIssues.ignoreCompletionTrigger)和GitHub Issue:忽略用户完成触发器(githubIssues.ignoreUserCompletionTrigger)来配置哪些文件显示这些建议。这些设置接受 语言标识符 数组以指定文件类型。
// Languages that the '#' character should not be used to trigger issue completion suggestions.
"githubIssues.ignoreCompletionTrigger": [
"python"
]
Pull Request
从Pull Request 视图中,您可以查看、管理和创建 Pull Request。
用于显示拉取请求的查询可以通过**GitHub 拉取请求:查询**(githubPullRequests.queries)设置进行配置,并使用GitHub 搜索语法。
"githubPullRequests.queries": [
{
"label": "Assigned To Me",
"query": "is:open assignee:${user}"
},
创建拉取请求
将更改提交到您的 fork 或分支后,您可以使用**GitHub 拉取请求:创建拉取请求**命令或**拉取请求**视图中的**创建拉取请求**按钮来创建拉取请求。
将显示一个新的**创建**视图,您可以在其中选择希望拉取请求的目标基本仓库和基本分支,以及填写标题和描述。如果您的仓库有拉取请求模板,则该模板将自动用于描述。
使用顶部的操作栏中的按钮添加**分配者**、**审阅者**、**标签**和**里程碑**。
**创建**按钮菜单允许您选择其他创建选项,例如**创建草稿**或启用**自动合并**方法。
选择**创建**后,如果您还没有将分支推送到 GitHub 远程仓库,则扩展程序会询问您是否要发布该分支,并提供一个下拉列表供您选择特定的远程仓库。
**创建拉取请求**视图现在进入**审阅模式**,您可以在其中查看 PR 的详细信息,添加评论,并在 PR 就绪后将其合并。PR 合并后,您将可以选择删除远程分支和本地分支。
审阅
可以从**拉取请求**视图中审阅拉取请求。您可以分配审阅者和标签,添加评论,批准、关闭和合并所有来自拉取请求**描述**的操作。
从**描述**页面,您还可以使用**检出**按钮轻松地将拉取请求本地检出。这将切换 VS Code 以在审阅模式下打开拉取请求的 fork 和分支(在状态栏中可见),并添加一个新的**拉取请求中的更改**视图,您可以在其中查看当前更改的差异,以及所有提交和这些提交中的更改。带有评论的文件将用菱形图标装饰。要查看磁盘上的文件,您可以使用**打开文件**内联操作。
此视图中的差异编辑器使用本地文件,因此文件导航、IntelliSense 和编辑按正常方式工作。您可以在这些差异的编辑器中添加评论。支持添加单个评论和创建整个审阅。
完成拉取请求更改的审阅后,您可以合并 PR 或选择**退出审阅模式**以返回到您正在处理的先前分支。
Issue
创建问题
可以通过**问题**视图中的**+**按钮,以及使用**GitHub 问题:从选定内容创建问题**和**GitHub 问题:从剪贴板创建问题**命令来创建问题。它们也可以使用“TODO”注释的代码操作来创建。创建问题时,您可以选择默认描述或选择右上角的**编辑描述**铅笔图标以调出问题正文的编辑器。
您可以使用**GitHub 问题:创建问题触发器**(githubIssues.createIssueTriggers)设置来配置代码操作的触发器。
默认的问题触发器是
"githubIssues.createIssueTriggers": [
"TODO",
"todo",
"BUG",
"FIXME",
"ISSUE",
"HACK"
]
处理问题
从**问题**视图中,您可以看到您的问题并处理它们。
默认情况下,当您开始处理问题(**开始处理问题**上下文菜单项)时,将为您创建一个分支,如以下图像中的状态栏所示。
状态栏还显示了活动问题,如果您选择该项,则将提供一系列问题操作,例如在 GitHub 网站上打开问题或创建拉取请求。
您可以使用**GitHub 问题:问题分支标题**(githubIssues.issueBranchTitle)设置配置分支的名称。如果您的工作流不涉及创建分支,或者您希望每次都提示输入分支名称,则可以通过关闭**GitHub 问题:为问题使用分支**(githubIssues.useBranchForIssues)设置来跳过该步骤。
完成问题处理并想要提交更改后,**源代码管理**视图中的提交消息输入框将填充一条消息,该消息可以使用**GitHub 问题:工作问题格式 SCM**(githubIssues.workingIssueFormatScm)进行配置。
GitHub 存储库扩展
GitHub 仓库扩展程序使您能够直接在 Visual Studio Code 中快速浏览、搜索、编辑和提交任何远程 GitHub 仓库,而无需将仓库本地克隆。这对于许多场景来说可能是快速且便捷的,在这些场景中,您只需要查看源代码或对文件或资产进行少量更改。
打开仓库
安装 GitHub 仓库扩展程序后,您可以通过命令面板(⇧⌘P(Windows、Linux Ctrl+Shift+P))中的**GitHub 仓库:打开仓库...**命令,或单击状态栏左下角的远程指示器来打开仓库。
运行**打开仓库**命令后,您可以选择从 GitHub 打开仓库,从 GitHub 打开拉取请求,或重新打开以前连接的仓库。
如果您以前从未从 VS Code 登录 GitHub,则系统会提示您使用您的 GitHub 帐户进行身份验证。
您可以直接提供仓库 URL,或通过在文本框中键入来搜索 GitHub 以查找您想要的仓库。
选择仓库或拉取请求后,VS Code 窗口将重新加载,您将在文件资源管理器中看到仓库内容。然后,您可以打开文件(具有完整的语法高亮显示和括号匹配),进行编辑,并提交更改,就像您在本地克隆的仓库中工作一样。
与本地仓库工作的一个区别是,使用 GitHub 仓库扩展程序提交更改时,更改将直接推送到远程仓库,类似于您在 GitHub Web 界面中工作一样。
GitHub 仓库扩展程序的另一个功能是,每次打开仓库或分支时,您都会获得来自 GitHub 的最新源代码。您无需像在本地仓库中一样记住拉取以刷新。
GitHub 仓库扩展程序支持查看甚至提交 LFS 跟踪的文件,而无需在本地安装Git LFS(大型文件系统)。将您希望使用 LFS 跟踪的文件类型添加到.gitattributes
文件中,然后使用源代码管理视图直接将更改提交到 GitHub。
切换分支
您可以通过单击状态栏中的分支指示器来轻松地在分支之间切换。GitHub 仓库扩展程序的一个很棒的功能是,您可以切换分支,而无需暂存未提交的更改。扩展程序会记住您的更改,并在您切换分支时重新应用它们。
远程资源管理器
您可以使用活动栏上的远程资源管理器快速重新打开远程仓库。此视图显示了以前打开的仓库和分支。
创建拉取请求
如果您的工作流使用拉取请求而不是直接提交到仓库,则可以从源代码管理视图中创建新的 PR。系统会提示您提供标题并创建新的分支。
创建拉取请求后,您可以使用GitHub 拉取请求和问题扩展程序来审阅、编辑和合并您的 PR,如本主题前面所述。
虚拟文件系统
如果没有仓库文件在您的本地计算机上,GitHub 仓库扩展程序将在内存中创建一个虚拟文件系统,以便您可以查看文件内容并进行编辑。使用虚拟文件系统意味着某些操作和扩展程序将无法使用或功能有限,这些操作和扩展程序假定存在本地文件。任务、调试和集成终端等功能将不可用,您可以在远程指示器悬停中的**功能不可用**链接中了解有关虚拟文件系统支持级别的更多信息。
扩展程序作者可以在虚拟工作区扩展程序作者指南中详细了解在虚拟文件系统和工作区中运行。
继续处理...
有时您需要切换到支持本地文件系统和完整语言和开发工具的开发环境中处理仓库。GitHub 仓库扩展程序使您可以轻松地
- 创建 GitHub 代码空间(如果您有GitHub 代码空间扩展程序)。
- 将仓库本地克隆。
- 将仓库克隆到 Docker 容器中(如果您已安装Docker 和 Microsoft 的Docker 扩展程序)。
要切换开发环境,请使用**继续处理...**命令,该命令可以通过命令面板(⇧⌘P(Windows、Linux Ctrl+Shift+P))或单击状态栏中的远程指示器来使用。
如果您使用的是基于浏览器的编辑器,则**“继续处理...”**命令具有在本地或在GitHub 代码空间中云托管的环境中打开仓库的选项。
第一次使用**继续处理**以及未提交的更改时,您将可以选择使用**云更改**将您的编辑带到您选择的开发环境,**云更改**将您的待处理更改存储在用于设置同步的相同 VS Code 服务上。
这些更改将在应用于您的目标开发环境后从我们的服务中删除。如果您选择在不进行未提交的更改的情况下继续,则以后可以通过配置设置"workbench.cloudChanges.continueOn": "prompt"
来更改此首选项。
如果您的待处理更改未自动应用于您的目标开发环境,则可以使用**云更改:显示云更改**命令来查看、管理和删除您存储的更改。
GitHub Copilot
在 VS Code 中,您可以使用人工智能 (AI) 来增强您的编码,例如代码行或整个函数的建议,快速创建文档以及帮助创建与代码相关的工件,例如测试。
GitHub Copilot 是一款由 AI 驱动的代码补全工具,可帮助您更快、更智能地编写代码。您可以在 VS Code 中使用 GitHub Copilot 扩展 生成代码或从生成的代码中学习。
您可以在 Copilot 文档 中了解有关如何开始使用 Copilot 的更多信息。