{"meta":{"title":"为代码库创建代码空间","intro":"您可以为仓库中的分支创建代码空间以便在线开发。","product":"Codespaces","breadcrumbs":[{"href":"/zh/codespaces","title":"Codespaces"},{"href":"/zh/codespaces/developing-in-a-codespace","title":"在代码空间中开发"},{"href":"/zh/codespaces/developing-in-a-codespace/creating-a-codespace-for-a-repository","title":"为存储库创建代码空间"}],"documentType":"article"},"body":"# 为代码库创建代码空间\n\n您可以为仓库中的分支创建代码空间以便在线开发。\n\n## 关于为存储库创建 codespace\n\n可以在 GitHub 上、Visual Studio Code 中或使用 GitHub CLI 创建代码空间。使用本文中的选项卡显示有关创建 codespace 的每种方法的说明。\n\n你可以在个人 GitHub Codespaces 帐户上使用 GitHub，免费版和专业版计划的帐户每月都包含免费使用配额。 通过提供付款详细信息和设置支出限制，可以继续使用 GitHub Codespaces 超出每月包含的存储和计算使用量。 请参阅“[GitHub Codespaces 计费](/zh/billing/concepts/product-billing/github-codespaces)”。\n\n组织可以让成员和外部协作者能够创建和使用 codespace，费用由组织承担。 有关详细信息，请参阅“[选择在您的组织中谁拥有和支付 Codespaces 的费用](/zh/codespaces/managing-codespaces-for-your-organization/choosing-who-owns-and-pays-for-codespaces-in-your-organization)”。\n\n能否从组织拥有的存储库创建 codespace 取决于多个因素，包括存储库的可见性以及组织或其父企业的设置。 有关详细信息，请参阅“[代码空间创建和删除的故障排除](/zh/codespaces/troubleshooting/troubleshooting-creation-and-deletion-of-codespaces#no-access-to-create-a-codespace)”。\n\n如果要启动新项目，建议通过模板创建 codespace 并稍后将其发布到 GitHub 上的仓库。有关详细信息，请参阅 [通过模板创建 codespace](/zh/codespaces/developing-in-a-codespace/creating-a-codespace-from-a-template)。\n\n如果从存储库创建 codespace，该 codespace 将与不能为空的特定分支相关联。 您可以为每个仓库或甚至每个分支创建多个代码空间。\n\n可以在“你的 codespace”页面上查看创建的每个可用代码空间。 若要显示此页面，请在 GitHub 的左上角，选择 <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-three-bars\" aria-label=\"Open global navigation menu\" role=\"img\"><path d=\"M1 2.75A.75.75 0 0 1 1.75 2h12.5a.75.75 0 0 1 0 1.5H1.75A.75.75 0 0 1 1 2.75Zm0 5A.75.75 0 0 1 1.75 7h12.5a.75.75 0 0 1 0 1.5H1.75A.75.75 0 0 1 1 7.75ZM1.75 12h12.5a.75.75 0 0 1 0 1.5H1.75a.75.75 0 0 1 0-1.5Z\"></path></svg>，然后单击“<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-codespaces\" aria-label=\"codespaces\" role=\"img\"><path d=\"M0 11.25c0-.966.784-1.75 1.75-1.75h12.5c.966 0 1.75.784 1.75 1.75v3A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm2-9.5C2 .784 2.784 0 3.75 0h8.5C13.216 0 14 .784 14 1.75v5a1.75 1.75 0 0 1-1.75 1.75h-8.5A1.75 1.75 0 0 1 2 6.75Zm1.75-.25a.25.25 0 0 0-.25.25v5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-5a.25.25 0 0 0-.25-.25Zm-2 9.5a.25.25 0 0 0-.25.25v3c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25v-3a.25.25 0 0 0-.25-.25Z\"></path><path d=\"M7 12.75a.75.75 0 0 1 .75-.75h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1-.75-.75Zm-4 0a.75.75 0 0 1 .75-.75h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1-.75-.75Z\"></path></svg> Codespaces”\\*\\*\\*\\*。 这会转到 [github.com/codespaces](https://github.com/codespaces)。\n\n### codespace 创建过程\n\n创建代码空间时，需要执行一些步骤并将你连接到开发环境。\n\n* 第 1 步：虚拟机和存储被分配到您的代码空间。\n* 第 2 步：创建容器并克隆仓库。\n* 第 3 步：您可以连接到代码空间。\n* 第 4 步：Codespace 继续进行创建后的设置。\n\n有关创建 codespace 时发生的情况的详细信息，请参阅 [深入了解 GitHub Codespaces](/zh/codespaces/about-codespaces/deep-dive)。\n\n有关 codespace 生命周期的详细信息，请参阅 [了解代码空间的生命周期](/zh/codespaces/about-codespaces/understanding-the-codespace-lifecycle)。\n\n如果要对 codespace 使用 Git 钩子，则应使用 `devcontainer.json` 生命周期脚本（如 `postCreateCommand`）设置钩子。 这些操作在上面的步骤 4 中执行。 有关生命周期脚本的信息，请参阅开发容器网站上的[开发容器规范](https://containers.dev/implementors/json_reference/#lifecycle-scripts)。 由于在克隆仓库之后创建了 codespace 的 dev 容器，因此在 dev 容器映像中配置的任何 [git 模板目录](https://git-scm.com/docs/git-init#_template_directory)将不适用于你的 codespace。 在创建代码空间后，必须改为安装挂钩。\n\n使用 VS Code 在 codespace 中开发时，你可以编辑代码、调试和使用 Git 命令。 有关详细信息，请参阅 [VS Code 文档](https://code.visualstudio.com/docs)。\n\n若要加快 codespace 的创建速度，存储库管理员可以为存储库启用 GitHub Codespaces 预生成。 有关详细信息，请参阅“[关于 GitHub Codespaces 预构建](/zh/codespaces/prebuilding-your-codespaces/about-github-codespaces-prebuilds)”。\n\n## 为代码库创建代码空间\n\n<div class=\"ghd-tool webui\">\n\n1. 在 GitHub 上，导航到存储库的主页面。\n\n2. 在存储库名称下，选择标有当前分支名称的分支下拉菜单，然后单击要为其创建 codespace 的分支。\n\n   ![屏幕截图显示已展开的分支下拉菜单，其中列出了各个分支。 显示有分支图标的“主干”下拉菜单以橙色边框显示。](/assets/images/help/codespaces/branch-drop-down.png)\n\n3. 单击 **<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-code\" aria-label=\"code\" role=\"img\"><path d=\"m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z\"></path></svg> Code** 按钮，然后单击 **Codespaces** 选项卡。\n\n   对话框底部会显示一条消息，告知谁将为 codespace 付费。\n\n   ![Codespaces 对话框的屏幕截图。 显示谁将为 codespace 付费的消息以深橙色边框突出显示。](/assets/images/help/codespaces/who-will-pay.png)\n\n4. 创建您的 codespace，可以使用默认选项，或者在配置高级选项后再创建。\n\n   * 使用默认选项\n\n     要使用默认选项创建 codespace，请单击 <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-plus\" aria-label=\"Create a codespace on BRANCH\" role=\"img\"><path d=\"M7.75 2a.75.75 0 0 1 .75.75V7h4.25a.75.75 0 0 1 0 1.5H8.5v4.25a.75.75 0 0 1-1.5 0V8.5H2.75a.75.75 0 0 1 0-1.5H7V2.75A.75.75 0 0 1 7.75 2Z\"></path></svg>。 <br/><br/>\n\n   * **配置高级选项**\n\n     若要配置 codespace 高级选项（例如其他计算机类型或特定 `devcontainer.json` 文件），请执行以下操作：\n\n     1. 在 “Codespaces” 选项卡的右上角，选择 <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-kebab-horizontal\" aria-label=\"Codespace repository configuration\" role=\"img\"><path d=\"M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z\"></path></svg>，然后点击“新建并配置选项”。\n\n![“Codespaces”选项卡中选项下拉列表的屏幕截图，其中突出显示了选项“使用选项新建”。](/assets/images/help/codespaces/default-machine-type.png)\n\n```\n  1. 在 codespace 选项页上，从下拉菜单中选择首选选项。\n```\n\n![高级选项页面的屏幕截图，其中包含“分支”、“开发容器配置”、“区域”和“计算机类型”按钮。](/assets/images/help/codespaces/advanced-options.png)\n\n选项页面还可能会显示建议在 Codespaces 设置中创建的一个或多个机密的名称。 有关详细信息，请参阅[建议的机密](#recommended-secrets)。\n\n> \\[!NOTE]\n>\n> * 可以为选项页面添加书签，以便快速为该存储库和分支创建一个代码空间（codespace）。\n> *\n\n[\nhttps://github.com/codespaces/new\n](https://github.com/codespaces/new) 页提供了为任何存储库和分支创建 codespace 的快速方法。 可以通过在浏览器的地址栏中输入 `codespace.new` 来快速访问此页面。\n\n> * 有关开发容器配置文件的详细信息，请参阅 [开发容器简介](/zh/codespaces/setting-up-your-project-for-codespaces/adding-a-dev-container-configuration/introduction-to-dev-containers)。\n> * 有关计算机类型的详细信息，请参阅 [更改代码空间的计算机类型](/zh/codespaces/customizing-your-codespace/changing-the-machine-type-for-your-codespace#about-machine-types)。\n> * 你选择的可用计算机类型可能会受到多种因素的限制。 其中可能包括为组织配置的策略，或者存储库的计算机类型最低规范。 有关详细信息，请参阅 [限制对计算机类型的访问](/zh/codespaces/managing-codespaces-for-your-organization/restricting-access-to-machine-types) 和 [为代码空间计算机设置最低规范](/zh/codespaces/setting-up-your-project-for-codespaces/configuring-dev-containers/setting-a-minimum-specification-for-codespace-machines)。\n\n```\n  1. 点击“Create codespace”。\n```\n\n## 推荐的秘密\n\n创建 codespace 时，用户定义机密的名称可能会显示在高级选项页上。 如果在所选的开发容器配置中指定了建议的机密，则会发生这种情况。 有关详细信息，请参阅“[为存储库指定建议的机密](/zh/codespaces/setting-up-your-project-for-codespaces/configuring-dev-containers/specifying-recommended-secrets-for-a-repository)”。\n\n<img src=\"/assets/images/help/codespaces/recommended-secrets.png\" style=\"max-height:50rem\" alt='Screenshot of the \"Create codespace\" page with four recommended secrets highlighted with a dark orange outline.' />\n\n当系统提示输入这些开发环境机密的值时，建议输入这些机密的值，因为项目可能需要这些机密的值。 但是，创建代码空间不需要提供值。 如果愿意，可以在 codespace 中设置这些机密。\n\n如果为推荐的密钥输入值，该密钥将在新的 codespace 中可用。 单击“创建 codespace”时，该机密也会添加到 Codespaces 的个人设置中，因此以后在为此存储库创建 codespace 时，无需为该机密输入值。\n\n如果显示机密名称时带有一个无法选择的复选框，并且没有输入框，这是因为你已在 Codespaces 的个人设置中配置了此名称的机密，并且已将其与此存储库相关联。 如果已创建此名称的机密，但尚未将其与此存储库关联，则可以选择该复选框，这样就可以更新设置来添加关联。\n\n如果要更改预选机密的值，可以在 [github.com/settings/codespaces](https://github.com/settings/codespaces) 从 Codespaces 的个人设置中执行此操作。 有关详细信息，请参阅“[管理 GitHub Codespaces 的账户专属的机密](/zh/codespaces/managing-your-codespaces/managing-your-account-specific-secrets-for-github-codespaces)”。\n\n</div>\n\n<div class=\"ghd-tool vscode\">\n\n将 GitHub 上的帐户连接到 GitHub Codespaces 扩展后，可以创建新的 codespace。 有关 GitHub Codespaces 扩展的详细信息，请参阅 [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=GitHub.codespaces)。\n\n1. 在 VS Code 的活动栏中，单击“远程资源管理器”图标。\n\n   ![活动栏的屏幕截图。 “远程资源管理器”边栏图标（一个被圆圈覆盖的矩形）以橙色边框突出显示。](/assets/images/help/codespaces/click-remote-explorer-icon-vscode.png)\n\n   > \\[!NOTE]\n   > 如果远程资源管理器未显示在活动栏中：\n   >\n   > 1. 访问命令面板。 例如，通过按 <kbd>Shift</kbd>+<kbd>Command</kbd>+<kbd>P</kbd> (Mac)/<kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd> (Windows/Linux)。\n   > 2. 键入：`details`。\n   > 3. 单击“Codespace: 详细信息”。\n\n2. 将鼠标悬停在“远程资源管理器”边栏上，然后单击 <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-plus\" aria-label=\"The plus icon\" role=\"img\"><path d=\"M7.75 2a.75.75 0 0 1 .75.75V7h4.25a.75.75 0 0 1 0 1.5H8.5v4.25a.75.75 0 0 1-1.5 0V8.5H2.75a.75.75 0 0 1 0-1.5H7V2.75A.75.75 0 0 1 7.75 2Z\"></path></svg>。\n\n   ![GitHub Codespaces 的“远程资源管理器”边栏的屏幕截图。 工具提示“创建新 Codespace”显示在加号按钮旁边。](/assets/images/help/codespaces/create-codespace-vscode.png)\n\n3. 在文本框中，键入要在其中开发的存储库的名称，然后将其选中。\n\n   ![文本框中输入的“octo-org/he”的屏幕截图，以及以此字符串开头的四个存储库的列表。](/assets/images/help/codespaces/choose-repository-vscode.png)\n\n   后续提示的右侧会显示一条消息，告知谁将为 codespace 付费。\n\n   ![分支提示的屏幕截图，其中显示消息“hubwriter 付费使用”。](/assets/images/help/codespaces/who-will-pay-vscode.png)\n\n4. 单击要在其中开发的分支。\n\n5. 如果系统提示选择开发容器配置文件，请从列表中选择一个文件。\n\n6. 选择你要使用的机器类型。\n\n   > \\[!NOTE]\n   > 你选择的可用计算机类型可能会受到多种因素的限制。 其中可能包括为组织配置的策略，或者存储库的计算机类型最低规范。 有关详细信息，请参阅 [限制对计算机类型的访问](/zh/codespaces/managing-codespaces-for-your-organization/restricting-access-to-machine-types) 和 [为代码空间计算机设置最低规范](/zh/codespaces/setting-up-your-project-for-codespaces/configuring-dev-containers/setting-a-minimum-specification-for-codespace-machines)。\n\n</div>\n\n<div class=\"ghd-tool cli\">\n\n> \\[!NOTE]\n> 若要详细了解 GitHub CLI，请参阅“[关于 GitHub CLI](/zh/github-cli/github-cli/about-github-cli)”。\n\n若要创建新的 codespace，请使用 `gh codespace create` 子命令。\n\n```shell\ngh codespace create\n```\n\n系统会提示你选择存储库。 会显示一条消息，告知谁将为 codespace 付费。 系统将提示你选择分支、开发容器配置文件（如果有多个可用）和计算机类型（如果有多个可用）。\n\n或者，您可以使用标志来指定部分或全部选项：\n\n```shell\ngh codespace create -r OWNER/REPO -b BRANCH --devcontainer-path PATH -m MACHINE-TYPE\n```\n\n在此示例中，将 `owner/repo` 替换为存储库标识符。 将 `branch` 替换为你希望最初在 codespace 中签出的分支的名称或提交的完整 SHA 哈希。 如果使用 `-r` 标志而不使用 `b` 标志，则从默认分支创建 codespace。\n\n将 `path` 替换为要用于新的 codespace 的开发容器配置文件的路径。 如果省略此标志，并且有多个开发容器文件可用，系统将提示你从列表中选择一个文件。 有关开发容器配置文件的详细信息，请参阅 [开发容器简介](/zh/codespaces/setting-up-your-project-for-codespaces/adding-a-dev-container-configuration/introduction-to-dev-containers)。\n\n将 `machine-type` 替换为可用计算机类型的有效标识符。 标识符是字符串，例如：`basicLinux32gb` 和 `standardLinux32gb`。 可用的计算机类型取决于存储库、个人帐户以及你的位置。 如果输入无效或不可用的计算机类型，则错误消息中将显示可用类型。 如果省略此标志，并且有多个计算机类型可用，系统将提示您从列表中选择一个计算机类型。\n\n有关此命令的选项的完整详细信息，请参阅 [GitHub CLI 手册](https://cli.github.com/manual/gh_codespace_create)。\n\n</div>\n\n## 其他阅读材料\n\n* [打开现有 codespace](/zh/codespaces/developing-in-a-codespace/opening-an-existing-codespace)\n* [帮助快速创建和继续使用 Codespaces](/zh/codespaces/setting-up-your-project-for-codespaces/setting-up-your-repository/facilitating-quick-creation-and-resumption-of-codespaces)\n* [适用于 Codespaces 组织的 REST API 终结点](/zh/rest/codespaces/organizations)"}