# GitHub Codespaces 的灾难恢复

本文描述了当整个地区因重大自然灾害或大范围服务中断而中断时，灾难恢复情景的指导。

我们努力确保你始终能够使用 GitHub Codespaces。 但是，超出我们控制范围的力量有时会以导致计划外服务中断的方式影响服务。

虽然灾难恢复情况很少发生，但我们建议您为整个区域出现中断的可能性做好准备。 如果整个区域遇到服务中断，则数据的本地冗余副本将暂时不可用。

以下指南提供了如何处理部署代码空间的整个区域的服务中断的选项。

> \[!NOTE]
> 可以通过频繁推送到远程存储库来减少服务中断的潜在影响。

## 选项 1：在另一个区域中创建新的代码空间

如果发生区域性断电，我们建议您在未受影响的区域中重新创建代码空间以继续工作。 此新代码空间将包含截至您上次推送到 GitHub 的所有更改。 有关手动设置另一个区域的信息，请参阅 [为 GitHub Codespaces 设置默认区域](/zh/codespaces/setting-your-user-preferences/setting-your-default-region-for-github-codespaces)。

你可以通过在项目存储库中配置 `devcontainer.json` 来优化恢复时间，这样可定义工具、运行时间、框架、编辑器设置、扩展以及其他自动恢复开发环境所需的配置。 有关详细信息，请参阅“[开发容器简介](/zh/codespaces/setting-up-your-project-for-codespaces/adding-a-dev-container-configuration/introduction-to-dev-containers)”。

## 选项 2：等待恢复

在此情况下，不需要采取任何操作。 但要知道，我们正在努力还原服务的可用性。

你可以在[状态仪表板](https://www.githubstatus.com/)上查看当前服务状态。

## 选项 3：本地克隆存储库或在浏览器中编辑

虽然 GitHub Codespaces 具有预配置的开发人员环境的优点，但源代码应该始终可以通过 GitHub 托管的存储库访问。 如果发生 GitHub Codespaces 中断，仍然可以本地克隆存储库或在 GitHub 浏览器编辑器中编辑文件。 有关详细信息，请参阅“[编辑文件](/zh/repositories/working-with-files/managing-files/editing-files)”。

虽然此选项没有为您配置开发环境， 但它允许您在等待服务中断解决时根据需要更改源代码。

## 选项 4：对本地容器化环境使用开发容器扩展和 Docker

如果存储库具有 `devcontainer.json`，请考虑在 Visual Studio Code 中使用[开发容器扩展](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers)构建并连接到存储库的本地开发容器。 此选项的设置时间将因您本地规格和开发容器设置的复杂性而异。 有关详细信息，请参阅 VS Code 文档中的[在容器中开发](https://code.visualstudio.com/docs/remote/containers#_quick-start-open-a-git-repository-or-github-pr-in-an-isolated-container-volume)。

> \[!NOTE]
> 在尝试使用此选项之前，请确保本地设置满足[最低要求](https://code.visualstudio.com/docs/remote/containers#_system-requirements)。