跳到主要内容

为存储库创建 Codespace

你可以为存储库中的分支创建 Codespace 以在线开发。

关于为存储库创建 Codespace

你可以在 GitHub.com、Visual Studio Code 中或使用 GitHub CLI 创建 Codespace。使用本文中的选项卡显示每种创建 Codespace 方式的说明。

你可以在个人 GitHub.com 帐户上使用 GitHub Codespaces,其中包括每月为免费和专业版帐户提供的免费使用配额。你可以通过提供付款详细信息并设置支出限制,在每月包含的存储和计算使用量之外继续使用 GitHub Codespaces。有关更多信息,请参阅“关于 GitHub Codespaces 的账单”。

组织可以允许成员和外部协作者创建和使用代码空间,费用由组织承担。有关详细信息,请参阅“选择组织中代码空间的所有者和付款人”。

您从组织拥有的存储库创建代码空间的能力取决于多个因素,包括存储库的可见性和组织或其父企业设置。有关详细信息,请参阅“解决代码空间的创建和删除问题”。

如果您要启动一个新项目,您可能希望从模板创建代码空间,然后稍后发布到 GitHub 上的存储库。有关详细信息,请参阅“从模板创建代码空间”。

注意:如果您使用 JetBrains IDE,您可以使用 GitHub CLI 创建代码空间。然后,您可以使用 JetBrains Gateway 应用程序在 JetBrains IDE 中打开代码空间。有关详细信息,请参阅“在 JetBrains IDE 中使用 GitHub Codespaces”。

如果您从存储库创建代码空间,代码空间将与特定分支关联,该分支不能为空。您可以为每个存储库甚至每个分支创建多个代码空间。

您可以在“您的代码空间”页面上看到您创建的每个可用代码空间。要显示此页面,请在 GitHub.com 的左上角选择 ,然后单击 代码空间。这将带您到 github.com/codespaces

代码空间创建流程

当您创建代码空间时,会发生一系列步骤来创建代码空间并让您连接到您的开发环境

  • 步骤 1:VM 和存储已分配给您的代码空间。
  • 步骤 2:已创建容器并克隆了您的存储库。
  • 步骤 3:您可以连接到代码空间。
  • 步骤 4:代码空间继续进行创建后设置。

有关创建代码空间时发生的情况的更多信息,请参阅“深入了解 GitHub Codespaces”。

有关代码空间生命周期的更多信息,请参阅“了解代码空间生命周期”。

如果您想为代码空间使用 Git 钩子,则应使用 devcontainer.json 生命周期脚本(如 postCreateCommand)设置钩子。它们将在上述步骤 4 中执行。有关生命周期脚本的信息,请参阅开发容器网站上的开发容器规范。由于代码空间的开发容器是在克隆存储库后创建的,因此在开发容器映像中配置的任何git 模板目录均不会应用于您的代码空间。相反,必须在创建代码空间后安装钩子。

在使用 VS Code 在代码空间中进行开发时,您可以编辑代码、调试和使用 Git 命令。有关更多信息,请参阅VS Code 文档

为了加快代码空间创建速度,存储库管理员可以为存储库启用 GitHub Codespaces 预构建。有关更多信息,请参阅“关于 GitHub Codespaces 预构建”。

为存储库创建代码空间

  1. 在 GitHub.com 上,导航到存储库的主页。

  2. 在存储库名称下,选择分支下拉菜单(使用当前分支的名称进行标记),然后单击您要为其创建代码空间的分支。

    Screenshot of the expanded branch dropdown menu, listing various branches. The dropdown menu, labeled with a branch icon and "trunk," is highlighted with a dark orange outline.

  3. 单击 代码 按钮,然后单击代码空间选项卡。

    对话框底部会显示一条消息,告诉您谁将为代码空间付费。

    Screenshot of Codespaces dialog. The message showing who will pay for the codespace is highlighted with a dark orange outline.

  4. 创建您的代码空间,可以使用默认选项,也可以在配置高级选项后创建

    • 使用默认选项

      要使用默认选项创建代码空间,请单击 .

    • 配置高级选项

      若要配置代码空间的高级选项,例如不同的机器类型或特定的 devcontainer.json 文件

      1. 代码空间选项卡的右上角,选择 并单击使用选项新建

        Screenshot of the options dropdown in the "Codespaces" tab, with the option "New with options" highlighted.

      2. 在代码空间的选项页面上,从下拉菜单中选择首选选项。

        Screenshot of the advanced options page with buttons for "Branch," "Dev container configuration," "Region," and "Machine type."

        选项页面还可能显示一个或多个建议你在代码空间设置中创建的机密名称。有关详细信息,请参阅“建议的机密”。

        备注

      3. 单击创建代码空间

创建代码空间时,用户定义的机密名称可能会显示在高级选项页面上。如果在你选择的开发容器配置中指定了建议的机密,就会发生这种情况。有关详细信息,请参阅“为存储库指定建议的机密”。

Screenshot of the "Create codespace" page with four recommended secrets highlighted with a dark orange outline.

建议在系统提示时输入这些开发环境机密的数值,因为你的项目可能需要这些机密的数值。但是,提供数值并不是创建代码空间的必要条件。如果你愿意,可以在代码空间内设置这些机密。

如果您输入推荐的机密的值,该机密将在新的 Codespace 中可用。当您单击创建 Codespace时,该机密还将添加到您的 Codespaces 个人设置中,因此当您为此存储库创建 Codespace 时,您无需输入机密的值。

如果机密名称显示为复选框,该复选框不可选,且没有输入框,这是因为您已经在 Codespaces 个人设置中配置了此名称的机密,并且已将其与此存储库关联。如果您已创建此名称的机密,但尚未将其与此存储库关联,则复选框将可供选择,通过选择该复选框,您可以更新设置以添加关联。

如果您想更改预选机密的值,可以在 github.com/settings/codespaces 的 Codespaces 个人设置中进行更改。有关更多信息,请参阅“管理 GitHub Codespaces 的特定于帐户的机密”。

在 GitHub.com 上将您的帐户连接到 GitHub Codespaces 扩展程序后,您可以创建一个新的 Codespace。有关 GitHub Codespaces 扩展程序的更多信息,请参阅 VS Code Marketplace

  1. 在 VS Code 中,在活动栏中,单击远程资源管理器图标。

    Screenshot of the Activity Bar. The icon for the "Remote Explorer" side bar (a rectangle overlaid by a circle) is highlighted with an orange outline.

    注意:如果远程资源管理器未显示在活动栏中

    1. 访问命令面板。例如,按 Shift+Command+P(Mac)/ Ctrl+Shift+P(Windows/Linux)。
    2. 键入:details
    3. 单击Codespaces:详细信息
  2. 将鼠标悬停在“远程资源管理器”侧边栏上并单击 .

    Screenshot of the "Remote Explorer" side bar for GitHub Codespaces. The tooltip "Create New Codespace" is displayed beside the plus sign button.

  3. 在文本框中,键入您想要在其中进行开发的存储库的名称,然后选择它。

    Screenshot of "octo-org/he" entered into the text box and a list of four repositories that start with this string.

    在后续提示的右侧会显示一条消息,告诉您谁将支付 Codespace 的费用。

    Screenshot of a prompt for a branch, with the message "Usage paid for by hubwriter."

  4. 单击您想要在其中进行开发的分支。

  5. 如果系统提示您选择开发容器配置文件,请从列表中选择一个文件。

  6. 单击您想要使用的计算机类型。

    注意:可用的计算机类型的选择可能会受到多种因素的限制。这些因素可能包括为您的组织配置的策略,或您的存储库的最低计算机类型规范。有关更多信息,请参阅“限制对计算机类型的访问”和“为 Codespace 计算机设置最低规范”。

要了解有关 GitHub CLI 的更多信息,请参阅“关于 GitHub CLI”。

若要创建新的代码空间,请使用 gh codespace create 子命令。

gh codespace create

系统会提示你选择一个存储库。系统会显示一条消息,告诉你谁将为该代码空间付费。然后,系统会提示你选择一个分支、一个开发容器配置文件(如果有多个可用)和一个机器类型(如果有多个可用)。

或者,你可以使用标志指定部分或全部选项。

gh codespace create -r OWNER/REPO -b BRANCH --devcontainer-path PATH -m MACHINE-TYPE

在此示例中,将 owner/repo 替换为存储库标识符。将 branch 替换为分支名称或你希望最初在代码空间中检出的提交的完整 SHA 哈希。如果你使用 -r 标志而不使用 b 标志,则代码空间将从默认分支创建。

path 替换为要用于新代码空间的开发容器配置文件的路径。如果你省略此标志且有多个开发容器文件可用,系统会提示你从列表中选择一个。有关开发容器配置文件的详细信息,请参阅“开发容器简介”。

machine-type 替换为可用机器类型的有效标识符。标识符是字符串,例如:basicLinux32gbstandardLinux32gb。可用的机器类型取决于存储库、你的个人帐户和你的位置。如果你输入无效或不可用的机器类型,错误消息中会显示可用类型。如果你省略此标志且有多个机器类型可用,系统会提示你从列表中选择一个。

有关此命令的选项的完整详细信息,请参阅 GitHub CLI 手册

进一步阅读