跳转到内容
免费试用 Gitea Cloud ☁️ 30 天,加速你的开发与部署!
技术支持

推送镜像

推送镜像让远程仓库与 Gitea Enterprise 上的仓库保持同步。Gitea 会按间隔推送到远程,也可以选择在每次提交时推送。从 Gitea Enterprise v27.3.8 开始,推送镜像可以只推送指定分支,可以保留远程的分支和标签不动,并会记录同步历史。

  1. 打开 仓库 > 设置 中的镜像设置。
  2. 输入 Git 远程仓库地址,如果远程需要认证,再填写用户名和密码或令牌。
  3. 选择同步间隔,也可以勾选推送提交时同步(Sync when commits are pushed)。
  4. 设置下面的选项,然后点击添加推送镜像(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

添加、更新和删除推送镜像会记录到审计日志。