git clone --mirror 同步桥

情况一:之前的 mirror 裸仓库还在

如果你之前的 cuda-quantum.git(mirror 裸仓库)目录还保留着,两步搞定

bash 复制代码
cd ~/cuda-quantum.git

# Step 1: 从 a 仓库拉取最新内容(包括新 tag、新分支、新提交)
# 因为当初 mirror 时 fetch URL 仍指向 a,所以直接 fetch 即可
git fetch origin

# Step 2: 推送到 b 仓库(push URL 已指向 b)
git push --mirror

原理说明:

git clone --mirror https://a.git 创建的裸仓库有两个隐含配置:

bash 复制代码
$ git config --get remote.origin.url          # fetch URL → 仍是 a
https://a.git

$ git config --get remote.origin.pushurl      # push URL → 你改成了 b
ssh://b.git

$ git config --get remote.origin.mirror       # mirror 模式开启
true

所以 git fetch origina 拉取git push --mirrorb 推送,天然就是增量同步。


情况二:mirror 裸仓库已被删除

如果之前的裸仓库已经删了,不要重新 clone --mirror ,否则会把 Bitbucket 的 refs/pull-requests/* 又拉回来导致推送失败。

正确做法是创建一个新的裸仓库,只 fetch 分支和标签

bash 复制代码
# 创建新的裸仓库
git clone --bare https://a.git project.git
cd project.git

# 配置推送到 b
git remote set-url --push origin ssh://b.git

# 推送所有分支和标签(跳过 Bitbucket 内部保留的 refs)
git push origin 'refs/heads/*:refs/heads/*'
git push origin 'refs/tags/*:refs/tags/*'

如果之前的裸仓库已经推送成功过一次,现在只剩增量问题,推荐用情况一保留裸仓库作为长期同步桥。


情况三:只想同步新 tag,不碰已有内容

如果 b 仓库已经有大部分内容,只想把 a 的新 tag 同步过去:

bash 复制代码
cd ~/cuda-quantum.git

# 获取 a 的所有新内容
git fetch origin

# 只推送新 tag
git push origin --tags

# 或:推送所有分支(只推送 b 上没有的)
git push origin 'refs/heads/*:refs/heads/*'

长期维护:建一个简单的同步脚本

如果 a 和 b 两个仓库需要长期保持同步,建议保留那个 mirror 裸仓库,并写一个定时脚本:

bash 复制代码
#!/bin/bash
# ~/sync-mirror.sh

REPO_DIR="$HOME/cuda-quantum.git"
cd "$REPO_DIR" || exit 1

echo "Fetching from source (a)..."
git fetch origin

echo "Pushing to mirror (b)..."
# 排除 Bitbucket 内部保留的命名空间
git push origin 'refs/heads/*:refs/heads/*'
git push origin 'refs/tags/*:refs/tags/*'

echo "Done."

加 crontab 每周自动同步:

bash 复制代码
crontab -e
# 添加
0 2 * * 1 /home/eili/sync-mirror.sh >> /home/eili/sync-mirror.log 2>&1

关键命令速查

需求 命令
从 a 增量拉取 git fetch origin(在 mirror 裸仓库中执行)
全量推送到 b git push --mirror
只推送分支+标签(安全) git push origin 'refs/heads/*:refs/heads/*' && git push origin --tags
查看 fetch/push URL git remote -v
查看新 tag `git ls-remote --tags origin
相关推荐
llilian_166 小时前
北斗授时卡同步解决方案 gnss授时卡 计算机时间同步板卡
大数据·网络·人工智能·功能测试·51单片机
ACP广源盛139246256736 小时前
GSV5600 国产 8K Serdes 视频延长芯片,AI 超高清可视化远距离传输方案解析
大数据·人工智能·ai·硬件架构·国产芯片
Databend6 小时前
Databend 原生数据血缘:追溯指标来源,检查变更影响
大数据·数据库·sql
Raas1007 小时前
AI网关支持哪些模型?MAI Gateway(魔芋企业级AI网关)功能实测与最佳实践
大数据·人工智能·gateway·mai gateway·企业级产品
宸津-代码粉碎机7 小时前
微服务线上踩坑复盘:接口超时、负载倾斜隐形问题根治方案(生产级配置)
java·大数据·人工智能·python·spring
TechWJ7 小时前
没有公网 IP 也想远程连 PostgreSQL?从本地数据库到固定 TCP 地址完整配置
大数据·数据库·网络安全·postgresql·内网穿透
ShineWinsu7 小时前
对于Git:基础操作的超详细保姆级解析
linux·c++·git·面试·备份·管理·版本控制器
Raas1008 小时前
MAI Gateway(魔芋企业级AI网关)技术揭秘:AI网关支持DeepSeek吗?从原理到落地
大数据·人工智能·gateway·ai网关·mai gateway·魔芋·企业级产品
合米AI SOP系统8 小时前
新能源零部件|密封锁付装配工位,合米科技AI SOP视觉防错规避工艺遗漏带来的售后故障
大数据·人工智能·科技
沉迷...9 小时前
Git skip-worktree 使用笔记(本地忽略配置文件)
javascript·git