本文档介绍了 Gitea 如何在仓库系统中管理 Git 分支、标签和发布。它解释了数据模型、核心操作、用户界面以及这些组件之间的交互。
有关仓库文件查看的信息,请参阅 文件查看系统。
来源
分支存储在数据库中,用于跟踪 Git 提供的元数据之外的附加元数据。这使得分支保护、删除跟踪和权限管理等功能得以实现。
来源
标签是 Git 引用,而发布是 Gitea 特有的对象,为 Git 标签添加了附加元数据和功能。
来源
创建和删除分支的过程涉及 Git 操作和数据库更新。
来源
Gitea 计算分支之间的超前或滞后程度,这对于拉取请求尤其有用。
来源
受保护的分支有特殊规则,限制了谁可以推送它们以及允许哪些操作。
来源
Gitea 中的标签主要是 Git 标签,但 Gitea 也会在数据库中跟踪它们以提供附加功能。
来源
发布基于 Git 标签,增加了发布说明、附件和分类等功能。
来源
Gitea 中的发布和标签有着特殊的关系
来源
当分支或标签推送到仓库时,Gitea 会执行多个操作来更新其数据库并触发相应的操作。
来源
分支 UI 显示了分支及其状态,并提供了创建、重命名或删除分支的操作。
| 功能 | 描述 |
|---|---|
| 默认分支 | 显示带有特殊状态的仓库默认分支 |
| 分支列表 | 列出所有带有提交信息和状态的分支 |
| 分支操作 | 创建、重命名、删除和下载操作 |
| 分支比较 | 显示与默认分支的超前/滞后提交数 |
| 分支保护 | 指示分支是否受保护 |
来源
标签和发布 UI 显示标签和发布、它们关联的提交,并提供下载选项。
| 功能 | 描述 |
|---|---|
| 发布列表 | 显示带有标题、说明、标签和下载选项的发布 |
| 标签列表 | 显示带有关联提交信息的 Git 标签 |
| 发布创建 | 从标签创建新发布的表单 |
| 发布编辑 | 编辑发布详情或将标签转换为发布 |
| 附件管理 | 上传和管理发布附件 |
来源
Gitea 提供了用于管理分支、标签和发布的 REST API 端点。
| 端点 | 方法 | 描述 |
|---|---|---|
/api/v1/repos/{owner}/{repo}/branches | GET | 列出仓库分支 |
/api/v1/repos/{owner}/{repo}/branches/{branch} | GET | 获取特定分支 |
/api/v1/repos/{owner}/{repo}/branches | POST | 创建一个新分支 |
/api/v1/repos/{owner}/{repo}/branches/{branch} | DELETE | 删除分支 |
/api/v1/repos/{owner}/{repo}/branches/{branch} | PATCH | 更新分支 |
来源
| 端点 | 方法 | 描述 |
|---|---|---|
/api/v1/repos/{owner}/{repo}/releases | GET | List releases |
/api/v1/repos/{owner}/{repo}/releases/{id} | GET | Get a specific release |
/api/v1/repos/{owner}/{repo}/releases | POST | Create a release |
/api/v1/repos/{owner}/{repo}/releases/{id} | PATCH | Edit a release |
/api/v1/repos/{owner}/{repo}/releases/{id} | DELETE | Delete a release |
来源
Branch protection is a powerful feature that allows repository administrators to enforce workflow rules on specific branches.
来源
来源