跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
编程语言

从 Gitee 到 GitHub 的迁移与自动同步实践

从Gitee迁移项目至GitHub并实现一端提交、双平台自动同步的实操记录。包括完整历史迁移、SSH配置、本地多远程推送、GitHub Actions和Gitee镜像三种自动同步方案,以及常用命令速查和避坑要点。

月亮邮递员发布于 2026/6/30更新于 2026/10/1967 浏览
从 Gitee 到 GitHub 的迁移与自动同步实践

多数国内开发者习惯用 Gitee 托管代码,兼顾速度和协作。但项目要开源、面向海外的时候,GitHub 更合适。手工在两个平台重复提交、同步分支太折腾,容易搞乱提交历史,出现冲突或遗漏。

我折腾了一套方法:一次配置,之后只在 Gitee 或 GitHub 一端提交,就能自动同步到另一边。下面记录一下具体步骤,包括完整迁移、保留历史,以及三种自动同步方式。

准备工作

先搞定环境,否则后面会报权限错。

清理掉项目里的密钥、密码、内网配置之类敏感信息,不然同步出去就麻烦了。确保在 Gitee 有管理员权限,GitHub 上也建好仓库,邮箱验证过。

配置 SSH 密钥,方便两边免密码推送:

# 生成密钥,一直回车
ssh-keygen -t ed25519 -C "你的注册邮箱"
# 复制公钥
cat ~/.ssh/id_ed25519.pub

把公钥分别添加到 Gitee 和 GitHub 的 SSH 密钥设置里。

顺手检查下 Git 配置:

git --version
git config --global user.name "你的用户名"
git config --global user.email "你的注册邮箱"

从 Gitee 完整迁移到 GitHub

目标是把所有分支、标签、提交历史原封不动搬过去。最稳妥的办法是在本地克隆 Gitee 仓库,再推送到 GitHub。

  1. 在 GitHub 新建一个空仓库(别勾选 README 之类的初始化文件)。
  2. 克隆 Gitee 仓库:
git clone [email protected]:用户名/仓库名.git
cd 仓库名
  1. 添加 GitHub 远程地址,取名 github:
git remote add github [email protected]:用户名/仓库名.git
git remote -v   # 确认一下
  1. 全量推送:
git push github --all
git push github --tags

推送完刷新 GitHub 页面,代码和提交记录就都有了。

如果手头没有本地环境,也可以用 GitHub 的 Import repository 功能,填 Gitee 地址导入,但有些项目可能导入不完全,个人还是推荐本地克隆的方法。

自动同步:三种方式按需选

1. 本地多远程推送(最省事)

我日常个人项目都用这个。原理简单:给本地仓库的 origin 远程添加多个 push 地址,执行 git push origin 时就会同时推到两个平台。

先给 origin 加上 GitHub 地址:

git remote set-url --add origin [email protected]:用户名/仓库名.git

然后正常提交推送就行:

git add .
git commit -m "..."
git push origin 分支名

以后每次 push 都是双平台同步,几乎零额外操作。唯一要注意的是,如果之前在 origin 已经有其他地址配置,最好先检查。

2. GitHub Actions 自动同步(以 Gitee 为主)

如果你习惯只往 Gitee 提交,希望 GitHub 自动跟着更新,可以利用 GitHub Actions。前提是 Gitee 那边生成一个私人令牌(勾选 repo 权限),然后作为 secret 存在 GitHub 仓库。

在 GitHub 仓库创建 .github/workflows/sync-to-gitee.yml(名字随意),内容如下:

name: Sync Gitee to GitHub
on:
  push:
    branches: [ main, master, '*' ]
  workflow_dispatch:
jobs:
  sync:
    runs-on: ubuntu-latest
    steps:
      - name: Sync Repository
        uses: wearerequired/git-mirror-action@v1
        with:
          source-repo: [email protected]:用户名/仓库名.git
          destination-repo: [email protected]:用户名/仓库名.git

把 用户名/仓库名 换成你自己的。之后每次往 Gitee 推送代码,GitHub 端就会触发 Action 同步。注意,Actions 需要仓库有写权限,首次在 GitHub 上可能需要开一下。

3. Gitee 自带镜像功能(最稳定)

Gitee 有个仓库镜像功能,完全在平台侧运行,不需要本地或 CI 配置,适合长期维护的项目。进入仓库的「管理」→「仓库镜像管理」→「添加镜像」,方向选 Push,填上 GitHub 仓库地址并绑定令牌,启用就行。之后 Gitee 上的提交会自动同步到 GitHub。

这种方式网络和同步策略都由 Gitee 托管,不用担心 Action 配额或本地网络问题,但镜像会有几分钟的延迟。

常用命令速查

把上面用到的命令整理了一下,方便直接复制。

迁移与双远程配置

# 克隆 Gitee 仓库
git clone [email protected]:用户名/仓库名.git
cd 仓库名
# 添加 GitHub 远程
git remote add github [email protected]:用户名/仓库名.git
# 全量推送
git push github --all && git push github --tags
# 配置 origin 双推送
git remote set-url --add origin [email protected]:用户名/仓库名.git
# 日常提交
git add . && git commit -m "更新内容" && git push origin

Git 基础配置

git config --global user.name "你的用户名"
git config --global user.email "你的邮箱"
# 生成 SSH 密钥
ssh-keygen -t ed25519 -C "你的邮箱"
cat ~/.ssh/id_ed25519.pub

容易踩的坑

  • 推送权限失败:多半是 SSH 密钥没加对,或者用了 HTTPS 地址。优先用 SSH 地址。
  • 分支和标签没过去:push 时务必带上 --all 和 --tags,尤其是迁移的时候。
  • 代码冲突:同步前先拉一下远程最新代码,保持本地是干净的。
  • 自动化同步失灵:检查 Action 中的 secret 名对不对,Gitee 令牌有没有过期,YAML 缩进别搞错。
  • 开源合规:上 GitHub 后记得补上 LICENSE,README 写清楚,顺便再扫一眼有没有不该公开的东西。

怎么选

  • 个人开发:直接方案1,一劳永逸。
  • 团队共用:方案2或3,统一入口,免得每个人自己配远程。
  • 长时间无人值守:方案3的镜像更可靠,偶尔去看一眼同步状态就行。

总之,迁移本身不难,配好自动同步之后基本就忘掉这回事了。希望能给需要从 Gitee 迁到 GitHub 的同学省点时间。

目录

  1. 准备工作
  2. 生成密钥,一直回车
  3. 复制公钥
  4. 从 Gitee 完整迁移到 GitHub
  5. 自动同步:三种方式按需选
  6. 1. 本地多远程推送(最省事)
  7. 2. GitHub Actions 自动同步(以 Gitee 为主)
  8. 3. Gitee 自带镜像功能(最稳定)
  9. 常用命令速查
  10. 克隆 Gitee 仓库
  11. 添加 GitHub 远程
  12. 全量推送
  13. 配置 origin 双推送
  14. 日常提交
  15. 生成 SSH 密钥
  16. 容易踩的坑
  17. 怎么选

更多推荐文章

查看全部
  • C++ 虚函数与纯虚函数:多态机制的深度解析
  • 无人机避障:Mid360+Fast-lio 感知建图与 Ego-planner 运动规划
  • OpenClaw 浏览器调试模式配置:保留登录状态与自动化控制
  • 基于 ESP32-S3 的蓝牙/有线双模智能家居键盘控制器设计详解
  • Quartus Prime Lite 23.1 与 ModelSim 18.1 安装及联调教程
  • React 项目集成 Microi 吾码低代码开发教程
  • Stable Diffusion 3.5 云端部署与持久化存储指南
  • Whisper 模型下载导航:各版本及各格式获取指南
  • ROS rqt 工具箱核心插件配置与无人机调试实战
  • Copilot 的 Agent、Ask、Edit、Plan 模式核心区别解析
  • 四足机器人强化学习:PPO 算法的 Python 实现与解析
  • GitHub Copilot 版本差异解析与课程适配建议
  • 北漂转行软件测试:从零开始的外企高薪实战指南
  • CCF-GESP 2025 年 9 月 C++ 一级真题解析
  • AI 技术动态与工具更新汇总
  • DeepSeek 深度使用指南:提示词技巧与本地知识库搭建
  • MoltBot 接入钉钉 Stream 流式接口配置指南
  • CSS 样式基础与界面布局实战指南
  • 金仓 KingbaseES 融合架构实践:从多库并存到一库多能
  • Spring Boot 数据访问与数据库集成实战

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online