# 代码空间创建和删除的故障排除

本文提供了在创建或删除代码空间时可能遇到的常见问题（包括存储和配置问题）的疑难解答步骤。

## 创建代码空间

### 没有创建代码空间的权限

GitHub Codespaces 不适用于所有存储库。 如果未显示用于创建代码空间的选项， GitHub Codespaces 则可能无法用于该存储库。

如果你的个人帐户中还有每月包含的 GitHub Codespaces 剩余用量，或者你已设置付款方式和支出限制，则可以为任何公共仓库创建代码空间。

还可以为至少具有读取访问权限的任何专用存储库创建 codespace，前提是此专用存储库归个人帐户所有。 如果存储库是专用 的，并且归组织所有，则根据组织的设置或其父企业，你可能无法为该存储库创建代码空间。

如果无法为存储库创建 codespace，可能是由以下组织或企业设置造成的。

* 组织和企业所有者可以选择哪些用户可以在组织的专用GitHub Codespaces和内部。 有关详细信息，请参阅“[为组织启用或禁用 GitHub Codespaces](/zh/codespaces/managing-codespaces-for-your-organization/enabling-or-disabling-github-codespaces-for-your-organization)”。
* 组织和企业所有者可以对该组织部分或所有专用存储库禁用分叉。 如果仅对存储库具有读取权限，并且无法为其创建分支，则无法为该存储库创建 codespace。 有关详细信息，请参阅 [管理组织的复刻政策](/zh/organizations/managing-organization-settings/managing-the-forking-policy-for-your-organization)。

有关可能会影响是否可以创建 codespace 的其他组织和企业设置的信息，请参阅 [为组织启用或禁用 GitHub Codespaces](/zh/codespaces/managing-codespaces-for-your-organization/enabling-or-disabling-github-codespaces-for-your-organization)。

有关个人帐户包含的用量和设置支出限制的详细信息，请参阅 [GitHub Codespaces 计费](/zh/billing/concepts/product-billing/github-codespaces) 和 [设置预算以控制按流量计费的产品的支出](/zh/billing/how-tos/set-up-budgets)。

### 代码空间创建后无法打开

如果创建了代码空间，但未打开：

1. 如果出现缓存或报告问题，请尝试重新加载页面。
2. 转到 GitHub Codespaces 页面： <https://github.com/codespaces> 并检查新代码空间是否列在那里。 该过程可能已成功创建代码空间，但未向浏览器报告。 如果列出了新的代码空间，则可以直接从该页打开它。
3. 重试为存储库创建代码空间，以排除暂时性通信故障。

如果你仍然无法为可用 GitHub Codespaces 的存储库创建代码空间，可能需要联系支持人员。 有关详细信息，请参阅“[与 GitHub Codespaces 支持协作](/zh/codespaces/troubleshooting/working-with-support-for-github-codespaces)”。

### Codespace 创建失败

如果创建 codespace 失败，则可能是由于云中的临时基础结构问题（例如，为 codespace 预配虚拟机时出现问题）。 失败的一个不太常见的原因是生成容器所需的时间超过一小时。 在这种情况下，将取消生成，并且 codespace 创建将失败。

> \[!NOTE]
> 未成功创建的 codespace 永远无法使用，应将其删除。 有关详细信息，请参阅“[删除代码空间](/zh/codespaces/developing-in-a-codespace/deleting-a-codespace)”。

如果创建代码空间并且创建失败：

1. 检查 GitHub“ [状态”页](https://githubstatus.com) 中是否有任何活动事件。
2. 转到[GitHub Codespaces页面](https://github.com/codespaces)，删除代码空间，并创建新的代码空间。
3. 如果容器正在构建，请查看流日志，确保构建未停滞。 超过一小时的容器构建将被取消，导致构建失败。

   发生这种情况的一种常见情况是，如果正在运行的脚本提示用户输入并等待答案。 如果是这种情况，请删除交互式提示，以便生成以非交互方式完成。

> \[!NOTE]
> 若要在生成期间查看日志，请执行以下操作：
>
> * 在浏览器中，如果生成过程的初始步骤花费的时间超过几秒钟，则会显示“设置你的 codespace”页面。 单击“查看日志”。
>
>   ![浏览器中“设置你的 codespace”页面的屏幕截图。 “查看日志”链接以深橙色轮廓突出显示。](/assets/images/help/codespaces/web-ui-view-logs.png)
>
> *

**在 VS Code 桌面应用程序中**，单击显示的“设置远程连接”弹出消息中的 **“生成代码空间** ”。

> ![VS Code 中弹出消息的屏幕截图，内容为“设置远程连接：codespace 构建中”。](/assets/images/help/codespaces/vs-code-building-codespace.png)
>
> 日志消息打印到 VS Code 中的终端

1. 如果容器需要很长时间才能生成，请考虑使用预生成来加快 codespace 创建速度。 有关详细信息，请参阅“[配置预生成](/zh/codespaces/prebuilding-your-codespaces/configuring-prebuilds#configuring-prebuilds)”。

## 删除代码空间

codespace 只能通过以下方式删除：

* 创建Codespace的人员
* 组织拥有的代码空间的组织所有者
* 保留期结束时自动删除

有关详细信息，请参阅 [删除代码空间](/zh/codespaces/developing-in-a-codespace/deleting-a-codespace) 和 [配置 codespace 的自动删除](/zh/codespaces/setting-your-user-preferences/configuring-automatic-deletion-of-your-codespaces)。

## 容器存储

创建代码空间时，存储量是有限的，随着时间的推移，可能需要释放空间。 尝试在终端中 GitHub Codespaces 运行以下命令，以释放存储空间。

* 使用 `sudo apt autoremove` 删除不再使用的包。
* 使用 `sudo apt clean` 清理 apt 缓存.
* 使用 `sudo find / -printf '%s %p\n'| sort -nr | head -10` 查看 codespace 中前 10 个最大的文件。
* 删除不需要的文件，如生成工件和日志。

一些更具破坏性的选项：

* 使用 `docker system prune` 删除未使用的 Docker 镜像、网络和容器。如果要删除所有镜像，请追加 `-a`；如果要删除所有卷，请追加 `--volumes`。
* 从工作树中删除不跟踪的文件：`git clean -i`。

## 配置

如果对 codespace 配置的更改导致容器错误，则 codespace 将在恢复模式下运行，并且你将看到错误消息。

```shell
This codespace is currently running in recovery mode due to a container error.
```

查看创建日志并根据需要更新开发容器配置。 有关详细信息，请参阅“[GitHub Codespaces 日志](/zh/codespaces/troubleshooting/github-codespaces-logs)”。

然后，可以尝试重启 codespace，或重新生成容器。 有关重新生成容器的详细信息，请参阅 [开发容器简介](/zh/codespaces/setting-up-your-project-for-codespaces/adding-a-dev-container-configuration/introduction-to-dev-containers#applying-configuration-changes-to-a-codespace)。