gitsync-go

支持跨网络git仓库同步的工具

版本:v0.1.0
# gitsync-go Go 版本 repo 同步工具,支持: - 日志文件记录 - 业务日志文件(每个仓库任务一行,记录关键结果) - 外网/内网网卡自动切换后再执行拉取/推送 - 指定分支同步(如 `main`、`test`) - 单次执行(建议由 Windows 任务计划程序定时触发) ## 1. 准备 1. 安装 Go 1.22+ 2. 安装 Git 并确保 `git` 在 PATH 3. 以管理员身份运行(启停网卡需要管理员权限) ## 2. 配置 复制 `config.example.json` 为 `config.json` 后按实际修改。 每个仓库必须配置 `branches`,只会同步这些分支。 ## 3. 运行 先编译: ```powershell go build -o gitsync-go.exe . ``` 查看网卡列表(用于直接拷贝到配置): ```powershell .\gitsync-go.exe --list-networks ``` 按配置执行同步: ```powershell .\gitsync-go.exe -config .\config.json ``` ## 4. 关键行为 - 外网阶段:先禁用并确认内网网卡已关闭,再启用外网网卡并等待“已连接”,然后按配置分支逐个 `git fetch`。 - 内网阶段:先禁用并确认外网网卡已关闭,再启用内网网卡并等待“已连接”,然后按配置分支逐个 `git push`。 - 推送前会额外检查远端就绪:`DNS 可解析`、`目标端口可连通`、`git ls-remote target` 成功,三者都通过后才推送。 - 每个仓库使用本地 mirror 目录缓存“上一步拉取的代码”。 - 详细命令输出写入日志文件,控制台只打印概要。 - 业务日志默认写入 `./logs/gitsync-business.log`,每个仓库只输出一行(仓库/分支/开始时间/耗时/结果/错误摘要)。 - 可通过 `network.external_ready_timeout_seconds`、`network.internal_ready_timeout_seconds`、`network.remote_ready_timeout_seconds`、`network.adapter_poll_seconds` 调整等待超时与轮询间隔。
← 返回下载中心