You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何简便实现两个远程Git repo的完全单向同步?

结论

不需要自行编写脚本,使用Git原生的镜像推送功能即可完全满足你的需求,仅需几行命令就能完成操作。

操作步骤

  1. 先确认本地已正确配置两个远程仓库,执行以下命令查看:
    git remote -v
    如果返回结果中没有A或B的仓库地址,可手动添加:
git remote add A <A仓库的远程地址>
git remote add B <B仓库的远程地址>
  1. 拉取A仓库的全量最新内容(你已经执行过该步,可跳过或重新执行确保内容为最新):
    git fetch A --all --tags -f
  2. 执行镜像推送命令,直接将A的全量内容同步到B,同时自动删除B中不存在于A的分支、标签、提交:
    git push --mirror B

命令说明

--mirror参数的作用就是将源仓库的所有引用(分支、标签、提交记录等)完整同步到目标仓库,同时自动清理目标仓库中源仓库不存在的引用,完全匹配你的需求。

注意事项

  • 该操作不可逆,执行前请确认你拉取的A仓库内容是最新版本,避免误删B仓库的有效内容
  • 如果B仓库设置了受保护的分支/标签,推送会失败,需要先联系B仓库的管理员取消对应分支/标签的保护规则,或开放你的推送权限
  • 如果你需要拆分同步逻辑(比如只同步分支不同步标签),可以用以下两条命令替代--mirror命令,效果一致:
    • 同步所有分支并删除B中A没有的分支:git push B --all --prune
    • 同步所有标签并删除B中A没有的标签:git push B --tags --prune

内容的提问来源于stack exchange,提问作者peterh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 20:36:04