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