# 通过模板创建 codespace

如果要启动新项目，可以通过空白模板创建 codespace，或者选择专为你要执行的工作类型设计的模板。

# 关于 GitHub Codespaces 的模板

如果要启动新项目，可以通过从模板创建 codespace 来快速开始开发工作。 你将能够在基于云的开发环境中处理项目、将文件保存在云中，以及将工作发布到可与他人共享或克隆到本地计算机的新远程存储库中。

可以从空白模板开始，从由 GitHub React 或 Jupyter Notebook 等常用技术维护的模板中进行选择，或者从任何模板存储库GitHub启动代码空间。

使用空白模板时，你将从一个空目录开始，并且可以访问云计算资源，以及在默认开发容器镜像中预安装的工具、语言和运行时环境。 使用其他模板时，你将获得当前所用技术的入门文件，通常还有一些额外文件，例如自述文件、`.gitignore` 文件和包含一些自定义环境配置的开发容器配置文件。 有关开发容器和默认映像的详细信息，请参阅 [开发容器简介](/zh/codespaces/setting-up-your-project-for-codespaces/adding-a-dev-container-configuration/introduction-to-dev-containers)。

例如，如果从 GitHubReact 模板创建代码空间，你将到达一个工作区，其中包含简单应用程序的模板文件，例如 `index.js`， `app.js`以及 `package.json`。 在代码空间打开后不久，开发服务器将自动启动，你将能够在 Web 客户端的 VS Code 简单浏览器选项卡中查看正在运行的应用程序。

![VS Code
的简单浏览器的屏幕截图，其中显示 GitHub 的 React 模板中的 Web 应用程序。](/assets/images/help/codespaces/react-template.png)

模板中包含的文件和配置在模板存储库中定义。 创建 codespace 时，模板存储库将克隆到 codespace 中。 之后，链接将被切断，并且 codespace 将不会链接到远程存储库，直到你发布到远程存储库为止。

> \[!TIP]
> 若要帮助用户开始使用框架、库或其他项目，可以设置模板存储库以供使用 GitHub Codespaces。 有关详细信息，请参阅“[为 GitHub Codespaces 设置模板存储库](/zh/codespaces/setting-up-your-project-for-codespaces/setting-up-your-repository/setting-up-a-template-repository-for-github-codespaces)”。

## 从 GitHub 模板创建代码空间

由 GitHub 维护的模板（包括空白模板）可在“你的 codespace”页面找到。

1. 在 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) 上的“Your codespaces”页面\*\*\*\*。

2. 若要查看模板的完整列表，请在“浏览快速入门模板”部分，单击“查看全部”。

   ![“探索快速入门模板”部分的屏幕截图。 “查看全部”以深橙色边框突出显示。](/assets/images/help/codespaces/codespace-templates-see-all.png)

3. （可选）若要查看包含模板文件的模板存储库，请单击模板的名称。

   ![“探索快速入门模板”部分的屏幕截图。 列出了三个模板。 模板名称以橙色边框显示。](/assets/images/help/codespaces/react-template-name.png)

4. 在要启动的模板名称下，单击“使用此模板”。

当你从模板创建新的代码空间时，它始终会在 Visual Studio Code 网页客户端中打开。 您可以在任何受支持的编辑器中重新打开已有的 Codespace。 有关详细信息，请参阅“[打开现有 codespace](/zh/codespaces/developing-in-a-codespace/opening-an-existing-codespace)”。

## 通过模板存储库创建代码空间（codespace）

可以通过任何模板存储库创建 codespace，然后在准备就绪后将工作发布到新存储库。 有关模板仓库的详细信息，请参阅 [从模板创建仓库](/zh/repositories/creating-and-managing-repositories/creating-a-repository-from-a-template#about-repository-templates)。

1. 在 GitHub 上，导航到存储库的主页面。
2. 单击“使用此模板”，然后单击“在 codespace 中打开”。

   ![屏幕截图显示“使用此模板”按钮和展开的下拉菜单，其中显示了“在 codespace 中打开”选项。](/assets/images/help/repository/use-this-template-button.png)

   > \[!NOTE]
   > 如果你是模板存储库的维护者，并且想要将更改提交到模板存储库本身，则应从 **<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> “代码** ”下拉列表创建一个代码空间。 有关详细信息，请参阅“[为代码库创建代码空间](/zh/codespaces/developing-in-a-codespace/creating-a-codespace-for-a-repository#creating-a-codespace-for-a-repository)”。

当你从模板创建新的代码空间时，它始终会在 Visual Studio Code 网页客户端中打开。 您可以在任何受支持的编辑器中重新打开已有的 Codespace。 有关详细信息，请参阅“[打开现有 codespace](/zh/codespaces/developing-in-a-codespace/opening-an-existing-codespace)”。

## 在 GitHub 上发布到存储库

在从模板创建的 codespace 中工作时，你的工作将保存在云中的虚拟机上，但不会存储在 GitHub 上的存储库中。

可以保存文件、关闭并停止 codespace，稍后再返回工作。 通常会预安装 Git，工作目录将自动初始化为 Git 存储库，除非你从 GitHub 的空白模板开始。 这意味着可以立即使用 Git 进行本地源代码管理，例如添加和提交文件。

但是，如果删除未发布的 codespace，或者该 codespace 由于在保持期内未使用而被自动删除，则你的工作也会被删除。 若要持久保存你的工作并允许其他人处理你的项目，你需要将 codespace 发布到 GitHub 上的存储库。

> \[!NOTE]
> 如果当前向组织收取未发布的 codespace 费用，则发布 codespace 会将 codespace 的所有权和计费转移到个人帐户。 请参阅“[GitHub Codespaces 计费](/zh/billing/concepts/product-billing/github-codespaces#how-costs-are-assigned-to-a-billable-account)”。

### 从 VS Code 发布

如果你使用的是 codespace，可以从 VS Code Web 客户端或桌面应用程序发布它。

1. 在活动栏中，单击“源代码管理”视图。

   ![屏幕截图显示 VS Code 活动栏，其中“源代码管理”按钮以橙色边框突出显示。](/assets/images/help/codespaces/source-control-activity-bar-button.png)

2. 要暂存更改，请单击已添加或更改文件旁边的 +，如果你更改了多个文件并希望全部暂存，请单击“Changes”旁边的按钮\*\*\*\*\*\*\*\*。

   ![“源代码管理”侧栏的屏幕截图，其中位于“更改”右侧的暂存按钮（加号）用深橙色边框突出显示。](/assets/images/help/codespaces/codespaces-commit-stage.png)

   > \[!NOTE]
   > 如果从 GitHub 的空白模板开始，则不会看到更改列表，除非已将目录初始化为 Git 存储库。 若要发布从空白模板创建的 codespace，请在“源代码管理”视图中单击“发布到 GitHub”，然后跳到步骤 5。

3. 若要提交暂存更改，请键入描述所做更改的提交消息，然后单击“提交”。

   ![“源代码管理”侧栏的屏幕截图，其中提交消息及其下方的“提交”按钮用深橙色边框突出显示。](/assets/images/help/codespaces/vscode-commit-button.png)

4. 单击“发布分支”。

   ![“源代码管理”侧栏的屏幕截图，其中显示了“发布分支”按钮。](/assets/images/help/codespaces/vscode-publish-branch-button.png)

5. 在“存储库名称”下拉列表中，键入新存储库的名称，然后选择“发布到 GitHub 专用存储库”或“发布到 GitHub 公共存储库”。

   ![VS Code 中的存储库名称下拉列表的屏幕截图。 显示了两个选项，用于发布到专用或公共存储库。](/assets/images/help/codespaces/choose-new-repository.png)

   新存储库的所有者将是创建 codespace 时所使用的 GitHub 帐户。

6. （可选）在编辑器右下角显示的弹出窗口中，单击“**在 GitHub 上打开**”，查看 GitHub 上的新存储库。

   ![成功发布存储库的确认消息的屏幕截图，其中显示了“在 GitHub 上打开”按钮。](/assets/images/help/codespaces/open-on-github.png)

代码空间发布后，您可以使用更多选项来自定义 GitHub Codespaces 体验。 例如，可以：

* 更改 codespace 的计算机类型，以确保使用适合你当前所执行工作的资源（请参阅 [更改代码空间的计算机类型](/zh/codespaces/customizing-your-codespace/changing-the-machine-type-for-your-codespace)）。
* 允许 GitHub 自动使用 GPG 对代码空间中所做的提交进行签名（请参阅 [管理 GitHub Codespaces 的 GPG 验证](/zh/codespaces/managing-your-codespaces/managing-gpg-verification-for-github-codespaces)）。
* 与你的 codespace 共享机密信息（请参阅 [管理 GitHub Codespaces 的账户专属的机密](/zh/codespaces/managing-your-codespaces/managing-your-account-specific-secrets-for-github-codespaces)）。

### 从 GitHub 发布

可以在 GitHub
上的“你的代码空间”页面发布尚未发布的代码空间。 如果要发布当前未在浏览器中打开的 codespace，此做法非常有用。 如果执行此操作，你的工作将保留在存储库中，但现有 codespace 和新存储库之间不会有链接。 不过，你可以进入新存储库并在那里创建一个 codespace，而这个 codespace 将连接到该存储库。

1. 在 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) 上的“Your codespaces”页面\*\*\*\*。

2. 在未发布的 codespace 旁边，单击省略号 (...) ，然后选择“发布到新存储库” 。

   ![codespace 下拉菜单的屏幕截图，其中显示了“发布到新存储库”选项。](/assets/images/help/codespaces/publish-to-new-repository.png)

3. 为新存储库选择一个名称，将其设置为“公共”或“专用”，然后单击“创建存储库”  。

   ![“发布到新存储库”下拉列表的屏幕截图，其中包含“名称”字段、“公共”和“专用”选项以及“创建存储库”按钮。](/assets/images/help/codespaces/template-new-repository-settings.png)

4. （可选）若要查看新存储库，请单击“查看存储库”。

## 其他阅读材料

* [为代码库创建代码空间](/zh/codespaces/developing-in-a-codespace/creating-a-codespace-for-a-repository)
* [了解代码空间的生命周期](/zh/codespaces/about-codespaces/understanding-the-codespace-lifecycle)
* [在代码空间中使用源控制](/zh/codespaces/developing-in-a-codespace/using-source-control-in-your-codespace)