跳至主要内容

在 Codespace 中使用源代码管理

在 Codespace 中对文件进行更改后,您可以快速提交更改并将更新推送到远程存储库。

注意

  • 目前,在 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 创建分叉或将您的代码空间链接到现有分叉时,会发生以下情况。

  • 与您的代码空间关联的访问令牌将更新为包括对您的分叉的 readwrite 权限,以及对上游存储库的 read 权限。
  • 在您的 Git 设置中,上游存储库将重新分配为 upstream,并且分叉将作为新的远程存储库添加到 origin

默认情况下,您从编辑器的用户界面访问的源代码管理命令(例如 VS Code 中的 **同步更改** 按钮)会针对您的分叉。如果您从命令行工作,可以使用 origin 来引用您的分叉,并使用 upstream 来引用上游存储库。例如,您可以从上游存储库获取更改,以确保您的代码空间与项目的最新更改保持同步。

git fetch upstream

当您进行了一些更改后,您可以将它们推送到分叉的功能分支。

git push origin my-feature-branch

有关更多信息,请参阅“关于分叉”。

发布从模板创建的代码空间

当您从模板存储库或“您的代码空间”页面上的模板创建代码空间时,您所做的工作不会存储在 GitHub 上的存储库中,直到您发布代码空间。有关更多信息,请参阅“从模板创建代码空间”。

如果您在使用 Codespace,您可以从 VS Code 网页客户端或桌面应用程序发布它。

  1. 在活动栏中,点击 **源代码管理** 视图。

    Screenshot of the VS Code Activity Bar with the source control button highlighted with an orange outline.

  2. 要暂存您的更改,请点击您添加或更改的文件旁边的 **+**,或者如果您更改了多个文件并希望暂存所有文件,则点击 **更改** 旁边的 **+**。

    Screenshot of the "Source control" side bar with the staging button (a plus sign), to the right of "Changes," highlighted with a dark orange outline.

    **注意:** 如果您从 GitHub 的空白模板开始,除非您已将目录初始化为 Git 仓库,否则您将看不到更改列表。要发布从空白模板创建的 Codespace,请在“源代码管理”视图中点击 **发布到 GitHub**,然后跳到步骤 5。

  3. 要提交您已暂存的更改,请键入描述您所做更改的提交消息,然后点击 **提交**。

    Screenshot of the "Source control" side bar with a commit message and, below it, the "Commit" button both highlighted with a dark orange outline.

  4. 点击 **发布分支**。

    Screenshot of the "Source control" side bar showing the "Publish Branch" button.

  5. 在“仓库名称”下拉菜单中,键入新仓库的名称,然后选择 **发布到 GitHub 私有仓库** 或 **发布到 GitHub 公开仓库**。

    Screenshot of the repository name dropdown in VS Code. Two options are shown, for publishing to a private or a public repository.

    新仓库的所有者将是您创建 Codespace 的 GitHub 帐户。

  6. 可选地,在编辑器右下角出现的弹出窗口中,点击 **在 GitHub 上打开** 以在 GitHub.com 上查看新仓库。

    Screenshot of a confirmation message for a successfully published repository, showing the "Open on GitHub" button.

创建或切换分支

  1. 如果当前分支未在状态栏中显示,请在 Codespace 底部右键点击状态栏,然后选择 **源代码管理**。

  2. 点击状态栏中的分支名称。

    Screenshot of the branch name displayed in the status bar of VS Code.

  3. 在下拉菜单中,点击您要切换到的分支,或输入新分支的名称,然后点击 **创建新分支**。

    Screenshot of the dropdown for creating a new branch in VS Code.

**提示:** 如果有人最近在远程仓库中更改了文件,在您切换到的分支中,您可能看不到这些更改,直到您将这些更改拉取到您的 Codespace 中。

提交您的更改

  1. 在活动栏中,点击 **源代码管理** 视图。

    Screenshot of the VS Code Activity Bar with the source control button highlighted with an orange outline.

  2. 要暂存您的更改,请点击 您更改的文件旁边的 **+**,或者如果您更改了多个文件并希望暂存所有文件,则点击 **更改** 旁边的 **+**。

    Screenshot of the "Source control" side bar with the staging button (a plus sign), to the right of "Changes," highlighted with a dark orange outline.

  3. 在文本框中,键入描述您所做更改的提交消息。

    Screenshot of the "Source control" side bar with a commit message entered into the text box above the "Commit" button.

  4. 点击提交按钮右侧的下拉箭头,然后从下拉菜单中选择提交并推送

    Screenshot of the dropdown for the "Commit" button. The option "Commit & Push" is highlighted with a dark orange outline.

从远程仓库拉取更改

您可以随时将远程仓库中的更改拉取到您的代码空间中。

  1. 在活动栏中,点击 **源代码管理** 视图。

    Screenshot of the VS Code Activity Bar with the source control button highlighted with an orange outline.

  2. 在侧边栏顶部,点击 .

    Screenshot of the "Source control" side bar. The ellipsis button (three dots) is highlighted with a dark orange outline.

  3. 在下拉菜单中,点击拉取

如果自您创建代码空间以来,开发容器配置已更改,您可以通过重建代码空间的容器来应用这些更改。有关更多信息,请参阅“开发容器简介”。

将您的代码空间设置为自动获取新更改

您可以将您的代码空间设置为自动获取对远程仓库所做的任何新提交的详细信息。这使您能够查看本地仓库副本是否已过期,在这种情况下,您可以选择拉取新更改。

如果获取操作检测到远程仓库上的新更改,您将在状态栏中看到新提交的数量。然后,您可以将更改拉取到本地副本中。

  1. 点击活动栏底部的管理按钮。

    Screenshot of the bottom of the Activity Bar. The Manage button (labeled with a gear symbol) is highlighted with a dark orange outline.

  2. 在菜单中,点击设置

  3. 在设置页面上,搜索:autofetch

    Screenshot of the "Settings" tab. The search text "autofetch" is highlighted with a dark orange outline.

  4. 要获取当前仓库注册的所有远程的更新详细信息,请将Git: 自动获取设置为all

    Screenshot of the "Git: Autofetch" setting, set to "all."

  5. 如果您想更改每次自动获取之间的时间间隔,请编辑Git: 自动获取周期的值。

创建拉取请求

  1. 在将更改提交到本地仓库副本后,点击“源代码管理”侧边栏顶部的拉取请求图标。

    Screenshot of the top of the "Source Control" side bar. The pull request icon is highlighted with a dark orange outline.

  2. 检查您要从中合并的本地分支和仓库,以及您要合并到的远程分支和仓库是否正确。然后为拉取请求提供标题和描述。

    Screenshot of the "GitHub Pull Request" side bar with a form for creating a pull request, including "Title" and "Description" fields.

  3. 点击创建

将更改推送到远程仓库

您可以推送已保存和提交的更改。这会将这些更改应用到远程仓库上的上游分支。如果您还没有准备好创建拉取请求,或者您更愿意在 GitHub 上创建拉取请求,则可能需要这样做。

  1. 在侧边栏顶部,点击 .

    Screenshot of the "Source control" side bar. The ellipsis button (three dots) is highlighted with a dark orange outline.

  2. 在下拉菜单中,点击推送

发布从模板创建的代码空间

当您从模板存储库或“您的代码空间”页面上的模板创建代码空间时,您所做的工作不会存储在 GitHub 上的存储库中,直到您发布代码空间。有关更多信息,请参阅“从模板创建代码空间”。

如果您在使用 Codespace,您可以从 VS Code 网页客户端或桌面应用程序发布它。

  1. 在活动栏中,点击 **源代码管理** 视图。

    Screenshot of the VS Code Activity Bar with the source control button highlighted with an orange outline.

  2. 要暂存您的更改,请点击您添加或更改的文件旁边的 **+**,或者如果您更改了多个文件并希望暂存所有文件,则点击 **更改** 旁边的 **+**。

    Screenshot of the "Source control" side bar with the staging button (a plus sign), to the right of "Changes," highlighted with a dark orange outline.

    **注意:** 如果您从 GitHub 的空白模板开始,除非您已将目录初始化为 Git 仓库,否则您将看不到更改列表。要发布从空白模板创建的 Codespace,请在“源代码管理”视图中点击 **发布到 GitHub**,然后跳到步骤 5。

  3. 要提交您已暂存的更改,请键入描述您所做更改的提交消息,然后点击 **提交**。

    Screenshot of the "Source control" side bar with a commit message and, below it, the "Commit" button both highlighted with a dark orange outline.

  4. 点击 **发布分支**。

    Screenshot of the "Source control" side bar showing the "Publish Branch" button.

  5. 在“仓库名称”下拉菜单中,键入新仓库的名称,然后选择 **发布到 GitHub 私有仓库** 或 **发布到 GitHub 公开仓库**。

    Screenshot of the repository name dropdown in VS Code. Two options are shown, for publishing to a private or a public repository.

    新仓库的所有者将是您创建 Codespace 的 GitHub 帐户。

  6. 可选地,在编辑器右下角出现的弹出窗口中,点击 **在 GitHub 上打开** 以在 GitHub.com 上查看新仓库。

    Screenshot of a confirmation message for a successfully published repository, showing the "Open on GitHub" button.

创建或切换分支

  1. 如果当前分支未在状态栏中显示,请在 Codespace 底部右键点击状态栏,然后选择 **源代码管理**。

  2. 点击状态栏中的分支名称。

    Screenshot of the branch name displayed in the status bar of VS Code.

  3. 在下拉菜单中,点击您要切换到的分支,或输入新分支的名称,然后点击 **创建新分支**。

    Screenshot of the dropdown for creating a new branch in VS Code.

**提示:** 如果有人最近在远程仓库中更改了文件,在您切换到的分支中,您可能看不到这些更改,直到您将这些更改拉取到您的 Codespace 中。

提交您的更改

  1. 在活动栏中,点击 **源代码管理** 视图。

    Screenshot of the VS Code Activity Bar with the source control button highlighted with an orange outline.

  2. 要暂存您的更改,请点击 您更改的文件旁边的 **+**,或者如果您更改了多个文件并希望暂存所有文件,则点击 **更改** 旁边的 **+**。

    Screenshot of the "Source control" side bar with the staging button (a plus sign), to the right of "Changes," highlighted with a dark orange outline.

  3. 在文本框中,键入描述您所做更改的提交消息。

    Screenshot of the "Source control" side bar with a commit message entered into the text box above the "Commit" button.

  4. 点击提交按钮右侧的下拉箭头,然后从下拉菜单中选择提交并推送

    Screenshot of the dropdown for the "Commit" button. The option "Commit & Push" is highlighted with a dark orange outline.

从远程仓库拉取更改

您可以随时将远程仓库中的更改拉取到您的代码空间中。

  1. 在活动栏中,点击 **源代码管理** 视图。

    Screenshot of the VS Code Activity Bar with the source control button highlighted with an orange outline.

  2. 在侧边栏顶部,点击 .

    Screenshot of the "Source control" side bar. The ellipsis button (three dots) is highlighted with a dark orange outline.

  3. 在下拉菜单中,点击拉取

如果自您创建代码空间以来,开发容器配置已更改,您可以通过重建代码空间的容器来应用这些更改。有关更多信息,请参阅“开发容器简介”。

将您的代码空间设置为自动获取新更改

您可以将您的代码空间设置为自动获取对远程仓库所做的任何新提交的详细信息。这使您能够查看本地仓库副本是否已过期,在这种情况下,您可以选择拉取新更改。

如果获取操作检测到远程仓库上的新更改,您将在状态栏中看到新提交的数量。然后,您可以将更改拉取到本地副本中。

  1. 点击活动栏底部的管理按钮。

    Screenshot of the bottom of the Activity Bar. The Manage button (labeled with a gear symbol) is highlighted with a dark orange outline.

  2. 在菜单中,点击设置

  3. 在设置页面上,搜索:autofetch

    Screenshot of the "Settings" tab. The search text "autofetch" is highlighted with a dark orange outline.

  4. 要获取当前仓库注册的所有远程的更新详细信息,请将Git: 自动获取设置为all

    Screenshot of the "Git: Autofetch" setting, set to "all."

  5. 如果您想更改每次自动获取之间的时间间隔,请编辑Git: 自动获取周期的值。

创建拉取请求

  1. 在将更改提交到本地仓库副本后,点击“源代码管理”侧边栏顶部的拉取请求图标。

    Screenshot of the top of the "Source Control" side bar. The pull request icon is highlighted with a dark orange outline.

  2. 检查您要从中合并的本地分支和仓库,以及您要合并到的远程分支和仓库是否正确。然后为拉取请求提供标题和描述。

    Screenshot of the "GitHub Pull Request" side bar with a form for creating a pull request, including "Title" and "Description" fields.

  3. 点击创建

将更改推送到远程仓库

您可以推送已保存和提交的更改。这会将这些更改应用到远程仓库上的上游分支。如果您还没有准备好创建拉取请求,或者您更愿意在 GitHub 上创建拉取请求,则可能需要这样做。

  1. 在侧边栏顶部,点击 .

    Screenshot of the "Source control" side bar. The ellipsis button (three dots) is highlighted with a dark orange outline.

  2. 在下拉菜单中,点击推送

创建或切换分支

  1. 点击状态栏右侧的分支名称。

    Screenshot of the status bar, with the tooltip for the branch name displayed. The branch icon and name, "main," are highlighted with a dark orange outline.

  2. 在弹出菜单中,执行以下操作之一

    • 要基于当前分支创建新分支,请点击新建分支

      Screenshot of the branches pop-up menu with the "New Branch" option selected.

      输入新分支的名称,然后点击创建

      Screenshot of the "Create New Branch" dialog, with "Create" and "Cancel" buttons. "my-branch" has been entered as a branch name.

    • 要检出现有分支,请开始输入要检出的分支的名称。从列表中点击该分支,然后点击检出

      Screenshot of the branches pop-up menu with the "origin/templates" branch selected and "Checkout" selected in the submenu.

      **提示:** 如果有人最近在远程仓库中更改了文件,在您切换到的分支中,您可能看不到这些更改,直到您将这些更改拉取到您的 Codespace 中。

提交您的更改

  1. 在导航栏的右侧,点击勾号。

    Screenshot of the navigation bar at the top of the JetBrains client. The check mark icon for committing your changes is highlighted.

  2. 在“提交更改”对话框中,输入提交消息。

  3. 点击提交

    或者,点击提交旁边的向下箭头,然后点击提交并推送

    Screenshot of the "Commit Changes" dialog showing the "Commit and Push" button.

从远程仓库拉取更改

您可以从远程仓库的同一分支拉取更改,并将这些更改应用到您在代码空间中使用的仓库副本。

  1. 在导航栏的右侧,点击向下箭头。

    Screenshot of the navigation bar at the top of the JetBrains client. The downward arrow icon is highlighted with a dark orange outline.

  2. 在“更新项目”对话框中,选择是要合并还是变基传入的更改。

    Screenshot of the "Update Project" dialog with options to merge or rebase, and a "Don't show again" checkbox.

  3. 点击确定

将更改推送到远程仓库

您可以推送已保存和提交的更改。这会将这些更改应用到远程仓库上的上游分支。如果您还没有准备好创建拉取请求,或者您更愿意在 GitHub 上创建拉取请求,则可能需要这样做。

  1. 在导航栏的右侧,点击向上箭头。

    Screenshot of the navigation bar at the top of the JetBrains client. The upward arrow icon is highlighted with a dark orange outline.

  2. 在“推送提交”对话框中,点击推送