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