注意
- 目前,在 JetBrains IDE 中使用 GitHub Codespaces 处于公开测试阶段,可能会发生更改。
- 要在 JetBrains IDE 中使用 Codespace,您必须使用 JetBrains Gateway 的 2023.3.* 或 2024.1.* 版本。
关于 GitHub Codespaces 中的源代码管理
您可以在代码空间中直接执行所有需要的 Git 操作。例如,您可以从远程仓库获取更改、切换分支、创建新分支、提交和推送更改以及创建拉取请求。您可以使用代码空间中的集成终端输入 Git 命令,也可以单击图标和菜单选项来完成所有最常见的 Git 任务。本指南介绍如何使用图形用户界面进行源代码控制。
有关 Visual Studio Code 中 Git 支持的更多信息,请参阅 Visual Studio Code 文档中的“在 VS Code 中使用版本控制”。
Visual Studio Code Web 客户端中的源代码控制使用与 Visual Studio Code 桌面应用程序相同的流程。有关更多信息,请参阅 Visual Studio Code 文档中的“在 VS Code 中使用版本控制”。
使用 GitHub Codespaces 更新文件的典型流程如下
- 从 GitHub 上您仓库的默认分支创建代码空间。请参阅“为仓库创建代码空间”。
- 在您的代码空间中,创建一个新分支来进行工作。
- 进行更改并保存。
- 提交更改。
- 发起拉取请求。
注意:默认情况下,GitHub Codespaces 使用 HTTPS 协议将数据传输到远程仓库并从远程仓库传输数据,并使用配置为具有读写访问权限的 GITHUB_TOKEN
进行身份验证,该访问权限用于您创建代码空间的仓库。如果您在身份验证方面遇到问题,请参阅“对仓库身份验证进行故障排除”。
关于自动分叉
要为您只有读取权限的仓库创建代码空间,您必须有权分叉该仓库。
您无需在创建代码空间之前分叉存储库。例如,您可以从存储库创建代码空间来查看项目并进行实验性更改,然后在不再需要时删除代码空间。
如果您从代码空间进行提交或推送新分支,GitHub Codespaces 或者会在您的帐户下创建存储库的分叉并将其链接到您的代码空间,或者如果您的存储库已经存在分叉,则会将您的代码空间链接到现有分叉。然后,您可以将更改推送到分叉并创建拉取请求以将更改建议给上游存储库。
如果您从命令行进行提交,您将看到一个提示,询问您是否要继续将代码空间链接到新的或现有的分叉。输入 y
以继续。如果您从 VS Code 的 **源代码管理** 视图或 JetBrains IDE 的导航栏中提交更改,您的代码空间会自动链接到分叉,而不会提示您。
注意
- 如果您删除了分叉存储库,那么与该分叉链接的任何代码空间都将被删除,即使您最初是从上游存储库创建它们的。
- 如果您从命令行进行提交并通过输入
n
拒绝了新的分叉,您应该从命令行而不是从 VS Code 的源代码管理视图中推送更改。如果您使用源代码管理视图,VS Code 仍然会尝试在推送时为您创建分叉。
当 GitHub Codespaces 创建分叉或将您的代码空间链接到现有分叉时,会发生以下情况。
- 与您的代码空间关联的访问令牌将更新为包括对您的分叉的
read
和write
权限,以及对上游存储库的read
权限。 - 在您的 Git 设置中,上游存储库将重新分配为
upstream
,并且分叉将作为新的远程存储库添加到origin
。
默认情况下,您从编辑器的用户界面访问的源代码管理命令(例如 VS Code 中的 **同步更改** 按钮)会针对您的分叉。如果您从命令行工作,可以使用 origin
来引用您的分叉,并使用 upstream
来引用上游存储库。例如,您可以从上游存储库获取更改,以确保您的代码空间与项目的最新更改保持同步。
git fetch upstream
当您进行了一些更改后,您可以将它们推送到分叉的功能分支。
git push origin my-feature-branch
有关更多信息,请参阅“关于分叉”。
发布从模板创建的代码空间
当您从模板存储库或“您的代码空间”页面上的模板创建代码空间时,您所做的工作不会存储在 GitHub 上的存储库中,直到您发布代码空间。有关更多信息,请参阅“从模板创建代码空间”。
如果您在使用 Codespace,您可以从 VS Code 网页客户端或桌面应用程序发布它。
-
在活动栏中,点击 **源代码管理** 视图。
-
要暂存您的更改,请点击您添加或更改的文件旁边的 **+**,或者如果您更改了多个文件并希望暂存所有文件,则点击 **更改** 旁边的 **+**。
**注意:** 如果您从 GitHub 的空白模板开始,除非您已将目录初始化为 Git 仓库,否则您将看不到更改列表。要发布从空白模板创建的 Codespace,请在“源代码管理”视图中点击 **发布到 GitHub**,然后跳到步骤 5。
-
要提交您已暂存的更改,请键入描述您所做更改的提交消息,然后点击 **提交**。
-
点击 **发布分支**。
-
在“仓库名称”下拉菜单中,键入新仓库的名称,然后选择 **发布到 GitHub 私有仓库** 或 **发布到 GitHub 公开仓库**。
新仓库的所有者将是您创建 Codespace 的 GitHub 帐户。
-
可选地,在编辑器右下角出现的弹出窗口中,点击 **在 GitHub 上打开** 以在 GitHub.com 上查看新仓库。
创建或切换分支
-
如果当前分支未在状态栏中显示,请在 Codespace 底部右键点击状态栏,然后选择 **源代码管理**。
-
点击状态栏中的分支名称。
-
在下拉菜单中,点击您要切换到的分支,或输入新分支的名称,然后点击 **创建新分支**。
**提示:** 如果有人最近在远程仓库中更改了文件,在您切换到的分支中,您可能看不到这些更改,直到您将这些更改拉取到您的 Codespace 中。
提交您的更改
-
在活动栏中,点击 **源代码管理** 视图。
-
要暂存您的更改,请点击 您更改的文件旁边的 **+**,或者如果您更改了多个文件并希望暂存所有文件,则点击 **更改** 旁边的 **+**。
-
在文本框中,键入描述您所做更改的提交消息。
-
点击提交按钮右侧的下拉箭头,然后从下拉菜单中选择提交并推送。
从远程仓库拉取更改
您可以随时将远程仓库中的更改拉取到您的代码空间中。
-
在活动栏中,点击 **源代码管理** 视图。
-
在侧边栏顶部,点击 .
-
在下拉菜单中,点击拉取。
如果自您创建代码空间以来,开发容器配置已更改,您可以通过重建代码空间的容器来应用这些更改。有关更多信息,请参阅“开发容器简介”。
将您的代码空间设置为自动获取新更改
您可以将您的代码空间设置为自动获取对远程仓库所做的任何新提交的详细信息。这使您能够查看本地仓库副本是否已过期,在这种情况下,您可以选择拉取新更改。
如果获取操作检测到远程仓库上的新更改,您将在状态栏中看到新提交的数量。然后,您可以将更改拉取到本地副本中。
-
点击活动栏底部的管理按钮。
-
在菜单中,点击设置。
-
在设置页面上,搜索:
autofetch
。 -
要获取当前仓库注册的所有远程的更新详细信息,请将Git: 自动获取设置为
all
。 -
如果您想更改每次自动获取之间的时间间隔,请编辑Git: 自动获取周期的值。
创建拉取请求
-
在将更改提交到本地仓库副本后,点击“源代码管理”侧边栏顶部的拉取请求图标。
-
检查您要从中合并的本地分支和仓库,以及您要合并到的远程分支和仓库是否正确。然后为拉取请求提供标题和描述。
-
点击创建。
将更改推送到远程仓库
您可以推送已保存和提交的更改。这会将这些更改应用到远程仓库上的上游分支。如果您还没有准备好创建拉取请求,或者您更愿意在 GitHub 上创建拉取请求,则可能需要这样做。
-
在侧边栏顶部,点击 .
-
在下拉菜单中,点击推送。
发布从模板创建的代码空间
当您从模板存储库或“您的代码空间”页面上的模板创建代码空间时,您所做的工作不会存储在 GitHub 上的存储库中,直到您发布代码空间。有关更多信息,请参阅“从模板创建代码空间”。
如果您在使用 Codespace,您可以从 VS Code 网页客户端或桌面应用程序发布它。
-
在活动栏中,点击 **源代码管理** 视图。
-
要暂存您的更改,请点击您添加或更改的文件旁边的 **+**,或者如果您更改了多个文件并希望暂存所有文件,则点击 **更改** 旁边的 **+**。
**注意:** 如果您从 GitHub 的空白模板开始,除非您已将目录初始化为 Git 仓库,否则您将看不到更改列表。要发布从空白模板创建的 Codespace,请在“源代码管理”视图中点击 **发布到 GitHub**,然后跳到步骤 5。
-
要提交您已暂存的更改,请键入描述您所做更改的提交消息,然后点击 **提交**。
-
点击 **发布分支**。
-
在“仓库名称”下拉菜单中,键入新仓库的名称,然后选择 **发布到 GitHub 私有仓库** 或 **发布到 GitHub 公开仓库**。
新仓库的所有者将是您创建 Codespace 的 GitHub 帐户。
-
可选地,在编辑器右下角出现的弹出窗口中,点击 **在 GitHub 上打开** 以在 GitHub.com 上查看新仓库。
创建或切换分支
-
如果当前分支未在状态栏中显示,请在 Codespace 底部右键点击状态栏,然后选择 **源代码管理**。
-
点击状态栏中的分支名称。
-
在下拉菜单中,点击您要切换到的分支,或输入新分支的名称,然后点击 **创建新分支**。
**提示:** 如果有人最近在远程仓库中更改了文件,在您切换到的分支中,您可能看不到这些更改,直到您将这些更改拉取到您的 Codespace 中。
提交您的更改
-
在活动栏中,点击 **源代码管理** 视图。
-
要暂存您的更改,请点击 您更改的文件旁边的 **+**,或者如果您更改了多个文件并希望暂存所有文件,则点击 **更改** 旁边的 **+**。
-
在文本框中,键入描述您所做更改的提交消息。
-
点击提交按钮右侧的下拉箭头,然后从下拉菜单中选择提交并推送。
从远程仓库拉取更改
您可以随时将远程仓库中的更改拉取到您的代码空间中。
-
在活动栏中,点击 **源代码管理** 视图。
-
在侧边栏顶部,点击 .
-
在下拉菜单中,点击拉取。
如果自您创建代码空间以来,开发容器配置已更改,您可以通过重建代码空间的容器来应用这些更改。有关更多信息,请参阅“开发容器简介”。
将您的代码空间设置为自动获取新更改
您可以将您的代码空间设置为自动获取对远程仓库所做的任何新提交的详细信息。这使您能够查看本地仓库副本是否已过期,在这种情况下,您可以选择拉取新更改。
如果获取操作检测到远程仓库上的新更改,您将在状态栏中看到新提交的数量。然后,您可以将更改拉取到本地副本中。
-
点击活动栏底部的管理按钮。
-
在菜单中,点击设置。
-
在设置页面上,搜索:
autofetch
。 -
要获取当前仓库注册的所有远程的更新详细信息,请将Git: 自动获取设置为
all
。 -
如果您想更改每次自动获取之间的时间间隔,请编辑Git: 自动获取周期的值。
创建拉取请求
-
在将更改提交到本地仓库副本后,点击“源代码管理”侧边栏顶部的拉取请求图标。
-
检查您要从中合并的本地分支和仓库,以及您要合并到的远程分支和仓库是否正确。然后为拉取请求提供标题和描述。
-
点击创建。
将更改推送到远程仓库
您可以推送已保存和提交的更改。这会将这些更改应用到远程仓库上的上游分支。如果您还没有准备好创建拉取请求,或者您更愿意在 GitHub 上创建拉取请求,则可能需要这样做。
-
在侧边栏顶部,点击 .
-
在下拉菜单中,点击推送。
创建或切换分支
-
点击状态栏右侧的分支名称。
-
在弹出菜单中,执行以下操作之一
-
要基于当前分支创建新分支,请点击新建分支。
输入新分支的名称,然后点击创建。
-
要检出现有分支,请开始输入要检出的分支的名称。从列表中点击该分支,然后点击检出。
**提示:** 如果有人最近在远程仓库中更改了文件,在您切换到的分支中,您可能看不到这些更改,直到您将这些更改拉取到您的 Codespace 中。
-
提交您的更改
-
在导航栏的右侧,点击勾号。
-
在“提交更改”对话框中,输入提交消息。
-
点击提交。
或者,点击提交旁边的向下箭头,然后点击提交并推送。
从远程仓库拉取更改
您可以从远程仓库的同一分支拉取更改,并将这些更改应用到您在代码空间中使用的仓库副本。
-
在导航栏的右侧,点击向下箭头。
-
在“更新项目”对话框中,选择是要合并还是变基传入的更改。
-
点击确定。
将更改推送到远程仓库
您可以推送已保存和提交的更改。这会将这些更改应用到远程仓库上的上游分支。如果您还没有准备好创建拉取请求,或者您更愿意在 GitHub 上创建拉取请求,则可能需要这样做。
-
在导航栏的右侧,点击向上箭头。
-
在“推送提交”对话框中,点击推送。