# 同步任务

同步任务是 Git Manage Service 的核心功能,支持在任意 Remote 和分支之间建立自动化同步规则。

文档截图

# 功能概览

同步任务列表

  • 灵活规则: 支持任意 Remote 和分支之间的同步
  • 定时执行: 内置 Cron 调度器,支持定时自动同步
  • Webhook 触发: 支持外部系统触发同步
  • 冲突检测: 自动检测并处理同步冲突
  • 执行日志: 完整的同步历史和日志记录

# 创建同步任务

# 操作步骤

  1. 点击左侧导航 "同步任务"
  2. 点击 "新建任务" 按钮
  3. 配置同步规则
  4. 保存并启用

新建同步任务

# 配置项说明

配置项 说明 示例
任务名称 便于识别的任务别名 main-to-backup
源仓库 选择已注册的仓库 my-project
源 Remote 源远程仓库 origin
源分支 源分支名称 main
目标 Remote 目标远程仓库 backup
目标分支 目标分支名称 main
Cron 表达式 定时执行规则 */10 * * * *
启用 是否启用定时任务 是/否

# Cron 表达式

使用标准五段式 Cron 表达式:

┌───────────── 分钟 (0 - 59)
│ ┌───────────── 小时 (0 - 23)
│ │ ┌───────────── 日期 (1 - 31)
│ │ │ ┌───────────── 月份 (1 - 12)
│ │ │ │ ┌───────────── 星期 (0 - 6,0 = 周日)
│ │ │ │ │
* * * * *
1
2
3
4
5
6
7

常用示例:

表达式 说明
*/10 * * * * 每 10 分钟
0 */2 * * * 每 2 小时
0 9 * * * 每天 9:00
0 9 * * 1 每周一 9:00
0 0 1 * * 每月 1 号 0:00

# 执行同步

# 手动执行

在任务列表中点击 "运行" 按钮,立即触发一次同步。

# 定时执行

启用任务后,系统会按照 Cron 表达式自动执行同步。

# Webhook 触发

参见 Webhook 集成,通过 HTTP 请求触发同步。

# 同步模式

# 单分支同步

同步指定的单个分支:

origin/main -> backup/main
1

# 全分支同步

同步所有分支(需要特殊配置):

origin/* -> backup/*
1

# Force Push

在某些场景下需要强制推送:

  • 启用: 勾选 "强制推送" 选项
  • 风险: 会覆盖目标分支的提交历史
  • 建议: 仅在确认无冲突时使用

# 同步状态

# 任务状态

状态 说明
待执行 任务已创建,等待执行
执行中 正在执行同步操作
成功 同步完成,无冲突
失败 同步失败,查看日志
冲突 存在代码冲突,需手动处理

# 查看执行日志

  1. 点击左侧导航 "审计日志"
  2. 筛选操作类型为 "sync"
  3. 点击日志查看详情

日志包含:

  • 执行时间
  • 同步方向
  • 提交范围
  • 变更文件列表
  • 错误信息(如有)

# 冲突处理

当检测到冲突时:

  1. 任务状态变为 "冲突"
  2. 系统发送通知(如已配置)
  3. 需要手动解决冲突:
    • 登录服务器
    • 进入仓库目录
    • 执行 git status 查看冲突文件
    • 手动合并代码
    • 提交解决冲突

# 任务管理

# 编辑任务

点击 "编辑" 按钮修改任务配置。

# 禁用/启用

切换任务的启用状态,禁用后定时任务不再执行。

# 删除任务

点击 "删除" 按钮移除任务(不影响已执行的同步)。

# 最佳实践

# 同步策略

  • 主从同步: 从主仓库同步到备份仓库
  • 双向同步: 谨慎使用,可能导致冲突
  • 定时同步: 根据团队节奏设置合适的频率

# 安全建议

  • 先在测试环境验证同步规则
  • 定期检查同步日志
  • 配置通知及时发现问题
  • 重要操作前先备份

# 下一步