克隆到一半卡住、网页半天打不开——只要你的仓库都放在 GitHub 上,这种场景大概率不陌生。其实早就有人在问自己:万一哪天 GitHub 挂了或者限制访问,我们存在上面的数据有没有做多端备份?知乎答案不言自明:把代码备份一份到国内的 Gitee,是最直接的一条路。可真动手之后你会发现,搜出来的教程一半还停留在 2023 年,照着做只会卡在第一步。
官方镜像这条路,基本已经走不通
很多老教程教的是用 Gitee 的「从 GitHub / GitLab 导入仓库」做镜像同步。这个入口其实还在:登录 Gitee 后,右上角「+」号菜单里,新建仓库和从 GitHub 导入仓库的选项都还留着,有教程把第一步标得很清楚。小红书

但按老教程走到镜像同步那一步,大多数人会卡在同一个地方:官方镜像功能现在有开源评估指数门槛,普通个人项目基本直接被劝退。抖音这个变化也不新鲜,2023 年就有教程视频提醒过时间窗口。哔哩哔哩也就是说,2024 年之后写的那批「三步搞定官方镜像」的教程,参考价值已经不高了。再看 Gitee 官网首页,首推位置留给了企业用户,个人镜像入口已经不在显眼位置。

对个人开发者来说,剩下的是下面这 4 条路,按你的仓库数量挑就行。
方案一:本地双推送,仓库少就用它
成本最低的做法:给本地仓库加一个 Gitee 远程地址,每次推代码时顺手推两份。别小看这个笨办法,它在同步方案里恰恰是最常用的一种,通过 remote 设定不同的别名,代码上传两遍就行。知乎操作也不复杂:在代码文件夹上右键,打开 Git Bash。

先添加 Gitee 远程,再推送:
```
git remote add gitee git@gitee.com:你的用户名/仓库名.git
git push gitee main
```
推送完成后,分支会原样出现在 gitee.com 的仓库里,终端里能直接看到推送结果。

缺点也很明显:每次都要记得推两次,漏一次备份就断档。适合仓库数量不多、平时就在本地干活的情况。
方案二:GitHub Actions 自动同步,推一次两边都有
想彻底偷懒,就用 GitHub Actions 挂一个定时任务:GitHub 一有提交,就自动把代码镜像到 Gitee。前提是先在 Gitee 上新建一个空仓库,用来接收同步过来的代码。

然后在 GitHub 仓库的 Settings → Secrets 里配置凭据,关键一步是生成 Gitee 私人令牌,把口令存进 GITEE_TOKEN 这个 secret。知乎令牌权限按最小化原则给,给多了不是方便,是泄露风险。同步任务单次只跑一两分钟,免费额度完全够用。
方案三:批量迁移工具,仓库多一次搬完
仓库十几个起步,一个个配置太折磨人,开源工具 GitHub-Gitee-Sync 可以把账号下的全部仓库(公开和私有)批量同步过去,支持用 docker 或 GitHub Action 跑,不用自己准备服务器。仓库越多,越建议先预演再真跑:–dry-run 模式会走完全部逻辑但不真的动手,先把要同步哪些仓库、做什么操作预览一遍,确认没问题再正式启动。知乎
三件事,少一件备份就白做
第一,同步不等于完整备份。普通 push 只推当前分支,想让标签和所有分支都过去,要么 git push --all 搭配 git push --tags,要么用 git clone --mirror 建一份完整的镜像裸仓库。同步完成后打开 Gitee 仓库页看一眼:文件列表、README、提交记录都在,这份备份才算真的能用。

第二,公私属性要一致。GitHub 上是私有仓库,Gitee 上建的目标仓库也要勾私有,属性不一致时同步会直接失败。第三,容量上限别忘。免费额度有明确的天花板,有图床教程专门提到过这组数字。微信公众号大仓库建议先清理提交历史或者拆分,再搬。
最后说句实在的
备份不是杞人忧天,是为了真需要的时候不用从零开始。至于值不值得把备份放在 Gitee,看看平台体量就有数了。微信公众号趁现在仓库还能访问,先把最重要的那一两个仓库备份起来,从上面选一个最简单的方案开始。你用的是哪种同步姿势,评论区聊聊。