注意
GitHub Codespaces 在 GHE.com 的子域(例如 octocorp.ghe.com
)上不可用。
关于为存储库创建 codespace
可以在 GitHub 上、Visual Studio Code 中或使用 GitHub CLI 创建代码空间。使用本文中的选项卡显示有关创建 codespace 的每种方法的说明。
可以在个人 GitHub 帐户上使用 GitHub Codespaces,其中免费版和专业版计划中的帐户包含每月免费使用配额。 通过提供付款详细信息和设置支出限制,可以在超出每月包含的存储空间和计算使用量后继续使用 GitHub Codespaces。 请参阅“关于 GitHub Codespaces 的计费”。
组织可以让成员和外部协作者能够创建和使用 codespace,费用由组织承担。 有关详细信息,请参阅“选择谁拥有组织中的 codespace 并为其付费”。
能否从组织拥有的存储库创建 codespace 取决于多个因素,包括存储库的可见性以及组织或其父企业的设置。 有关详细信息,请参阅“codespace 的创建和删除故障排除”。
注意
如果你有 托管用户帐户,则不能为个人存储库创建 codespace,除非存储库是组织拥有的存储库的分支,并且允许使用 GitHub Codespaces,费用由组织承担。 有关详细信息,请参阅“关于 Enterprise Managed Users”。
如果要启动新项目,建议通过模板创建 codespace 并稍后将其发布到 GitHub 上的仓库。有关详细信息,请参阅 通过模板创建 codespace。
如果从存储库创建 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 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 手册。