# 管理存储库中的发行版

你可以创建要捆绑的发行版，并将项目的迭代交付给用户。

## 关于发行版管理

可以使用发行说明、@mentions 参与者和指向二进制文件的链接创建新发行版，以及编辑或删除现有发行版。 还可以使用“发布 API”创建、修改和删除发行版。 有关详细信息，请参阅 REST API 文档中的“[REST API 发布端点](/zh/rest/releases/releases)”。

还可以在 GitHub Marketplace 中发布特定版本中的操作。 有关详细信息，请参阅“[在 GitHub Marketplace 中发布操作](/zh/actions/how-tos/create-and-publish-actions/publish-in-github-marketplace)”。

您可以选择是否将 Git 大型文件存储（Git LFS）对象包含在 GitHub 为每个版本创建的 ZIP 文件和 tar 包中。 有关详细信息，请参阅“[管理仓库存档中的 Git LFS 对象](/zh/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/managing-git-lfs-objects-in-archives-of-your-repository)”。

## 创建发行版

> \[!TIP]
> 如果为代码库启用了不可变发布版本，建议首先创建发布作为草稿，附加所有资源，然后再发布。 这样可以确保在发行版不可更改之前，一切都准备就绪。 有关详细信息，请参阅“[不可变版本](/zh/code-security/concepts/supply-chain-security/immutable-releases)”。

<div class="ghd-tool webui">

1. 在 GitHub 上，导航到存储库的主页面。
2. 在文件列表右侧，单击“发布”。

   ![存储库的主页的屏幕截图。 标记为“版本”的链接以橙色边框突出显示。](/assets/images/help/releases/release-link.png)
3. 在页面顶部，单击“起草新版本”。
4. 若要为该版本选择标记，请选择“选择标记”下拉菜单。
   * 若要使用现有标记，请单击该标记。
   * 若要创建新标记，请键入该版本的版本号，然后单击“创建新标记”。
5. 如果已创建新标记，请选择“目标”下拉菜单，然后单击包含要发布的项目的分支。
6. （可选）在说明字段上方，选择“上一个标记”下拉菜单，然后单击标识上一版本的标记。

   ![“新版本”窗体的屏幕截图。 标有“上一个标记: 自动”的下拉菜单以橙色边框突出显示。](/assets/images/help/releases/releases-tag-previous-release.png)
7. 在“发布标题”字段中，键入发布的标题。
8. 在“描述此发行版”字段中，键入此发行版的说明。
   如果在说明中 @mention 任何用户，已发布发行版将包括**参与者**部分以及所有提及用户的头像列表。
   或者，可以通过单击“**生成发行说明**”自动生成发行说明。
9. （可选）要在发行版中包含二进制文件（例如已编译的程序），请在二进制文件框中拖放或手动选择文件。
10. （可选）若要通知用户发行版尚未准备投入生产，并且可能不稳定，请选择“这是预发行版”。
11. （可选）选择“设置为最新版本”。 如果未选择此选项，系统会根据语义版本控制自动分配最新版本标签。
12. （可选）如果为存储库启用了 GitHub Discussions，请为发行版创建讨论。
    * 选择**为此发行版创建讨论**。
    * 选择“类别”下拉菜单，然后单击某个类型进行发行版讨论。\*\*\*\*
13. 如果已准备好公开发行版，请单击“发布发行版”。 若要稍后处理版本，请单击“ **保存草稿**”。如果为存储库启用了不可变版本，请先创建草稿，以便在发布变为不可变之前附加所有资产。
    然后可以在存储库的发行版源中查看发布的或草拟的发行版。 有关详细信息，请参阅“[查看仓库的发行版和标记](/zh/repositories/releasing-projects-on-github/viewing-your-repositorys-releases-and-tags)”。

</div>

<div class="ghd-tool cli">

> \[!NOTE]
> 若要详细了解 GitHub CLI，请参阅“[关于 GitHub CLI](/zh/github-cli/github-cli/about-github-cli)”。

1. 若要创建发行版，请使用 `gh release create` 子命令。 将 `tag` 替换为发行版所需的标记。

   ```shell
   gh release create TAG
   ```

2. 按照交互式提示进行操作。 或者，你可以指定参数以跳过这些提示。 有关可能的参数更多信息，请参阅 [GitHub CLI 手册](https://cli.github.com/manual/gh_release_create)。 例如，此命令将创建具有指定标题和注释的预发行版。

<!-- markdownlint-disable outdated-release-phase-terminology --> <!-- disable the outdated-release-phase-terminology rule since "beta" is part of the CLI command --> 

```shell
gh release create v1.3.2 --title "v1.3.2 (beta)" --notes "this is a 公开预览 release" --prerelease
```

<!-- markdownlint-enable outdated-release-phase-terminology -->

如果你在笔记中 @mention 任何 GitHub 用户，已发布的版本将包含一个**参与者**部分，其中列出所有被提及用户的头像列表。

</div>

## 编辑发行版

> \[!NOTE]
> 如果已为存储库启用不可变发行版，则只能在发行版发布后编辑标题和发行说明。 请参阅“[不可变版本](/zh/code-security/concepts/supply-chain-security/immutable-releases)”。

<div class="ghd-tool webui">

1. 在 GitHub 上，导航到存储库的主页面。
2. 在文件列表右侧，单击“发布”。

   ![存储库的主页的屏幕截图。 标记为“版本”的链接以橙色边框突出显示。](/assets/images/help/releases/release-link.png)
3. 在要编辑的版本旁边，单击 <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-pencil" aria-label="Edit" role="img"><path d="M11.013 1.427a1.75 1.75 0 0 1 2.474 0l1.086 1.086a1.75 1.75 0 0 1 0 2.474l-8.61 8.61c-.21.21-.47.364-.756.445l-3.251.93a.75.75 0 0 1-.927-.928l.929-3.25c.081-.286.235-.547.445-.758l8.61-8.61Zm.176 4.823L9.75 4.81l-6.286 6.287a.253.253 0 0 0-.064.108l-.558 1.953 1.953-.558a.253.253 0 0 0 .108-.064Zm1.238-3.763a.25.25 0 0 0-.354 0L10.811 3.75l1.439 1.44 1.263-1.263a.25.25 0 0 0 0-.354Z"></path></svg>。

   ![版本列表中的版本屏幕截图。 铅笔图标以橙色轮廓突出显示。](/assets/images/help/releases/edit-release-pencil.png)
4. 编辑窗体中的发行版详细信息，然后单击“更新发行版”\*\*\*\*。 如果在说明中添加或删除任何GitHub用户的@mentions，这些用户将会被添加或从发布的**贡献者**部分中的头像列表中删除。

</div>

<div class="ghd-tool cli">

1. 要编辑一个发行版，请使用 `gh release edit` 子命令。 将 `TAG` 替换为表示要编辑的发行版的标记。 例如，要编辑一个发行版的标题，请使用如下代码，并将 `NEW-TITLE` 替换为更新后的标题：

   ```shell
   gh release edit TAG -t "NEW-TITLE"
   ```

   有关可能的参数更多信息，请参阅 [GitHub CLI 手册](https://cli.github.com/manual/gh_release_edit)。

</div>

## 删除发行版

<div class="ghd-tool webui">

1. 在 GitHub 上，导航到存储库的主页面。
2. 在文件列表右侧，单击“发布”。

   ![存储库的主页的屏幕截图。 标记为“版本”的链接以橙色边框突出显示。](/assets/images/help/releases/release-link.png)
3. 在页面右侧的要删除的版本旁边，单击 <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-trash" aria-label="Delete" role="img"><path d="M11 1.75V3h2.25a.75.75 0 0 1 0 1.5H2.75a.75.75 0 0 1 0-1.5H5V1.75C5 .784 5.784 0 6.75 0h2.5C10.216 0 11 .784 11 1.75ZM4.496 6.675l.66 6.6a.25.25 0 0 0 .249.225h5.19a.25.25 0 0 0 .249-.225l.66-6.6a.75.75 0 0 1 1.492.149l-.66 6.6A1.748 1.748 0 0 1 10.595 15h-5.19a1.75 1.75 0 0 1-1.741-1.575l-.66-6.6a.75.75 0 1 1 1.492-.15ZM6.5 1.75V3h3V1.75a.25.25 0 0 0-.25-.25h-2.5a.25.25 0 0 0-.25.25Z"></path></svg>。

   ![发行版列表中的发行版屏幕截图。 回收站图标以橙色轮廓突出显示。](/assets/images/help/releases/delete-release-trash.png)
4. 单击“删除此发行版”\*\*\*\*。

</div>

<div class="ghd-tool cli">

1. 若要删除发行版，请使用 `gh release delete` 子命令。 将 `tag` 替换为要删除的发行版标记。 使用 `-y` 标志跳过确认。

   ```shell
   gh release delete TAG -y
   ```

</div>