菜单

分支、标签和发布

相关源文件

本文档介绍了 Gitea 如何在仓库系统中管理 Git 分支、标签和发布。它解释了数据模型、核心操作、用户界面以及这些组件之间的交互。

有关仓库文件查看的信息,请参阅 文件查看系统

分支、标签和发布概览

来源

数据模型

分支模型

分支存储在数据库中,用于跟踪 Git 提供的元数据之外的附加元数据。这使得分支保护、删除跟踪和权限管理等功能得以实现。

来源

标签和发布模型

标签是 Git 引用,而发布是 Gitea 特有的对象,为 Git 标签添加了附加元数据和功能。

来源

分支管理

创建和删除分支

创建和删除分支的过程涉及 Git 操作和数据库更新。

来源

分支分歧

Gitea 计算分支之间的超前或滞后程度,这对于拉取请求尤其有用。

来源

受保护的分支

受保护的分支有特殊规则,限制了谁可以推送它们以及允许哪些操作。

来源

标签管理

Gitea 中的标签主要是 Git 标签,但 Gitea 也会在数据库中跟踪它们以提供附加功能。

来源

发布管理

发布基于 Git 标签,增加了发布说明、附件和分类等功能。

来源

发布和标签关系

Gitea 中的发布和标签有着特殊的关系

  1. 标签可以独立于发布存在(纯粹的 Git 标签)
  2. 发布总是与一个标签相关联
  3. 可以从现有标签创建发布
  4. 创建发布可以自动创建标签

来源

仓库推送处理

当分支或标签推送到仓库时,Gitea 会执行多个操作来更新其数据库并触发相应的操作。

来源

用户界面

分支 UI

分支 UI 显示了分支及其状态,并提供了创建、重命名或删除分支的操作。

功能描述
默认分支显示带有特殊状态的仓库默认分支
分支列表列出所有带有提交信息和状态的分支
分支操作创建、重命名、删除和下载操作
分支比较显示与默认分支的超前/滞后提交数
分支保护指示分支是否受保护

来源

标签和发布 UI

标签和发布 UI 显示标签和发布、它们关联的提交,并提供下载选项。

功能描述
发布列表显示带有标题、说明、标签和下载选项的发布
标签列表显示带有关联提交信息的 Git 标签
发布创建从标签创建新发布的表单
发布编辑编辑发布详情或将标签转换为发布
附件管理上传和管理发布附件

来源

API 端点

Gitea 提供了用于管理分支、标签和发布的 REST API 端点。

分支 API

端点方法描述
/api/v1/repos/{owner}/{repo}/branchesGET列出仓库分支
/api/v1/repos/{owner}/{repo}/branches/{branch}GET获取特定分支
/api/v1/repos/{owner}/{repo}/branchesPOST创建一个新分支
/api/v1/repos/{owner}/{repo}/branches/{branch}DELETE删除分支
/api/v1/repos/{owner}/{repo}/branches/{branch}PATCH更新分支

来源

Release API

端点方法描述
/api/v1/repos/{owner}/{repo}/releasesGETList releases
/api/v1/repos/{owner}/{repo}/releases/{id}GETGet a specific release
/api/v1/repos/{owner}/{repo}/releasesPOSTCreate a release
/api/v1/repos/{owner}/{repo}/releases/{id}PATCHEdit a release
/api/v1/repos/{owner}/{repo}/releases/{id}DELETEDelete a release

来源

  • Files not explicitly provided in the input data, but API endpoints are referenced in the code

Branch Protection System

Branch protection is a powerful feature that allows repository administrators to enforce workflow rules on specific branches.

来源

Branch and Release Management Workflow

来源