关于为存储库创建 Codespace
您可以在 GitHub.com、Visual Studio Code 或使用 GitHub CLI 中创建 Codespace。使用本文中的选项卡显示创建 Codespace 的每种方法的说明。
您可以在您的个人 GitHub.com 帐户上使用 GitHub Codespaces,每月免费使用配额包含在免费和专业计划的帐户中。您可以通过提供付款信息并设置支出限额,在超出每月包含的存储和计算使用量后继续使用 GitHub Codespaces。有关更多信息,请参阅“关于 GitHub Codespaces 的计费”。
组织可以允许成员和外部协作者以组织的费用创建和使用 codespaces。有关更多信息,请参阅“选择谁拥有和支付组织中的 codespaces”。
您从组织拥有的存储库创建 codespaces 的能力取决于几个因素,包括存储库的可见性和组织或其父级企业的设置。有关更多信息,请参阅“对 codespaces 的创建和删除进行故障排除”。
如果您要开始一个新项目,您可能希望从模板创建 codespace,然后稍后发布到 GitHub 上的存储库。有关更多信息,请参阅“从模板创建 codespace”。
注意:如果您使用 JetBrains IDE,您可以使用 GitHub CLI 创建 codespace。然后,您可以使用 JetBrains Gateway 应用程序在 JetBrains IDE 中打开 codespace。有关更多信息,请参阅“在您的 JetBrains IDE 中使用 GitHub Codespaces”。
如果您从存储库创建 codespace,codespace 将与特定分支相关联,该分支不能为空。您可以在每个存储库甚至每个分支上创建多个 codespace。
您可以在“您的 Codespaces”页面上查看您创建的所有可用 Codespaces。要显示此页面,请在 GitHub.com 的左上角选择 ,然后单击 Codespaces。这将带您到 github.com/codespaces。
Codespace 创建过程
当您创建 Codespace 时,会执行许多步骤来创建并连接到您的开发环境
- 步骤 1:为您的 Codespace 分配 VM 和存储空间。
- 步骤 2:创建容器并克隆您的存储库。
- 步骤 3:您可以连接到 Codespace。
- 步骤 4:Codespace 继续进行创建后的设置。
有关创建 Codespace 时发生情况的更多信息,请参阅“深入了解 GitHub Codespaces”。
有关 Codespace 生命周期 的更多信息,请参阅“了解 Codespace 生命周期”。
如果您想在 Codespace 中使用 Git 钩子,则应使用 devcontainer.json
生命周期脚本(例如 postCreateCommand
)设置钩子。这些脚本将在上面的步骤 4 中执行。有关生命周期脚本的信息,请参阅开发容器网站上的 开发容器规范。由于 Codespace 的开发容器是在克隆存储库后创建的,因此在开发容器映像中配置的任何 git 模板目录 都不适用于您的 Codespace。钩子必须在 Codespace 创建后安装。
您可以在 Codespace 中使用 VS Code 编辑代码、调试和使用 Git 命令。有关更多信息,请参阅 VS Code 文档。
为了加快 Codespace 创建速度,存储库管理员可以为存储库启用 GitHub Codespaces 预构建。有关更多信息,请参阅“关于 GitHub Codespaces 预构建”。
为存储库创建 Codespace
-
在 GitHub.com 上,导航到存储库的主页。
-
在存储库名称下,选择分支下拉菜单(标有当前分支的名称),然后单击您要为其创建 Codespace 的分支。
-
单击 代码 按钮,然后单击 Codespaces 选项卡。
对话框底部会显示一条消息,告诉您谁将为 Codespace 付费。
-
创建您的 Codespace,可以使用默认选项,也可以在配置高级选项后创建。
-
使用默认选项
要使用默认选项创建代码空间,请单击 .
-
配置高级选项
要为您的代码空间配置高级选项,例如不同的机器类型或特定的
devcontainer.json
文件-
在 **代码空间** 选项卡的右上角,选择 并单击 **使用选项新建**。
-
在代码空间的选项页面上,从下拉菜单中选择您喜欢的选项。
选项页面也可能显示一个或多个建议您在代码空间设置中创建的密钥的名称。有关更多信息,请参阅“推荐的密钥”。
注意
- 您可以将选项页面添加为书签,以便快速创建此存储库和分支的代码空间。
- 该 https://github.com/codespaces/new 页面提供了一种快速创建任何存储库和分支的代码空间的方法。您可以在浏览器地址栏中键入
codespace.new
快速访问此页面。 - 有关 dev 容器配置文件的更多信息,请参阅“dev 容器简介”。
- 有关机器类型的更多信息,请参阅“更改代码空间的机器类型”。
- 可用的机器类型选择可能会受到多种因素的限制。这些因素可能包括为您的组织配置的策略,或您的存储库的最小机器类型规范。有关更多信息,请参阅“限制对机器类型的访问”和“为代码空间机器设置最小规格”。
-
单击 **创建代码空间**。
-
-
推荐的密钥
在您创建代码空间时,高级选项页面可能会显示用户定义的密钥的名称。如果您选择了的 dev 容器配置中指定了推荐的密钥,则会发生这种情况。有关更多信息,请参阅“为存储库指定推荐的密钥”。
在系统提示您输入这些开发环境密钥的值时,建议您输入这些值,因为您的项目可能需要这些密钥的值。但是,您无需提供值即可创建代码空间。如果您愿意,可以在代码空间内设置这些密钥。
如果您输入推荐的密钥的值,该密钥将在新的 Codespace 中可用。当您点击**创建 Codespace**时,该密钥也会添加到您的 Codespaces 个人设置中,因此您在将来为该仓库创建 Codespace 时,无需再输入密钥的值。
如果密钥名称旁边显示了一个不可选的复选框,并且没有输入框,这是因为您已经在 Codespaces 的个人设置中配置了此名称的密钥,并且已将其与该仓库关联。如果您创建了此名称的密钥,但未将其与该仓库关联,则复选框将可供选择,通过选择它,您可以更新设置以添加关联。
如果您想更改预选密钥的值,可以在 Codespaces 的个人设置中进行更改,地址为 github.com/settings/codespaces。有关更多信息,请参阅“管理您针对 GitHub Codespaces 的帐户特定密钥”。
在将 GitHub.com 上的帐户连接到 GitHub Codespaces 扩展后,您可以创建一个新的 Codespace。有关 GitHub Codespaces 扩展的更多信息,请参阅 VS Code Marketplace。
-
在 VS Code 中,在活动栏中,点击远程资源管理器图标。
注意:如果活动栏中未显示远程资源管理器
- 访问命令面板。例如,按 Shift+Command+P(Mac)/ Ctrl+Shift+P(Windows/Linux)。
- 输入:
details
。 - 点击**Codespaces:详细信息**。
-
将鼠标悬停在“远程资源管理器”侧边栏上,然后点击 .
-
在文本框中,输入要开发的仓库的名称,然后选择它。
在后续提示的右侧将显示一条消息,告诉您谁将为 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
替换为可用机器类型的有效标识符。标识符是字符串,例如:basicLinux32gb
和 standardLinux32gb
。可用的机器类型取决于存储库、您的个人帐户和您的位置。如果您输入无效或不可用的机器类型,则错误消息中将显示可用的类型。如果您省略此标志,并且有多个机器类型可用,系统会提示您从列表中选择一个。
有关此命令选项的完整详细信息,请参阅 GitHub CLI 手册。