推送镜像
推送镜像让远程仓库与 Gitea Enterprise 上的仓库保持同步。Gitea 会按间隔推送到远程,也可以选择在每次提交时推送。从 Gitea Enterprise v27.3.8 开始,推送镜像可以只推送指定分支,可以保留远程的分支和标签不动,并会记录同步历史。
添加推送镜像
Section titled “添加推送镜像”- 打开
仓库 > 设置中的镜像设置。 - 输入 Git 远程仓库地址,如果远程需要认证,再填写用户名和密码或令牌。
- 选择同步间隔,也可以勾选推送提交时同步(Sync when commits are pushed)。
- 设置下面的选项,然后点击添加推送镜像(Add Push Mirror)。
凭据不会写入仓库的 git 配置,推送镜像也不会把远程回滚到较旧的状态。
| 选项 | 说明 |
|---|---|
| 要推送的分支 | 以逗号分隔的分支名称或通配符,例如 main, release/*。留空表示推送所有分支。不匹配的远程分支保持不变。 |
| 不要删除本地不存在的远程分支 | 在 Gitea 中删除的分支会保留在远程。 |
| 不要推送标签 | 不推送标签,远程标签保持不变。 |
| 不要删除本地不存在的远程标签 | 在 Gitea 中删除的标签会保留在远程。 |
当远程仓库还会被其他人或系统写入时,请使用分支过滤和保留选项,例如只包含 main 和 release/* 的只读发布镜像。
推送镜像的每次同步都会被记录。点击镜像旁的同步历史可以查看每次运行的:
- 结果:成功、部分成功(有部分引用失败)或失败
- 时间和耗时
- 推送、删除和失败的引用数量,以及失败引用的原因
默认保留每个推送镜像最近 10 次运行。管理员可以在 app.ini 中修改:
[mirror]PUSH_HISTORY_KEEP = 10最小值为 1。
推送镜像 API 通过 config 对象接收这些选项(branch_filters、keep_remote_branches、no_push_tags、keep_remote_tags),同步历史可通过下面的接口获取:
GET /api/v1/repos/{owner}/{repo}/push_mirrors/{name}/history添加、更新和删除推送镜像会记录到审计日志。