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

如何将Git仓库从AWS CodeCommit完整迁移到GitHub(保留全分支等所有内容)

CodeCommit 迁移 GitHub 全量保留操作指南

以下操作可实现仓库1:1迁移,完整保留所有分支、标签、提交记录、提交者信息、Git注释等全部关联内容,不会出现内容缺失。

  • 前置准备
    • 确保本地账号同时拥有CodeCommit仓库的拉取权限、GitHub目标仓库的推送权限
    • 在GitHub上创建全新的空仓库,不要勾选初始化README、LICENSE、.gitignore选项,必须保持仓库完全空白,否则推送时会出现非相关提交冲突
  • 步骤1:裸克隆源CodeCommit仓库
    找一个临时工作目录打开终端,执行以下命令拉取源仓库的全量元数据,该操作不会检出工作区文件,只会拉取所有Git对象:
    git clone --bare <你的CodeCommit仓库克隆地址>

    克隆完成后,当前目录下会生成一个名为<仓库名>.git的文件夹

  • 步骤2:镜像推送到GitHub空仓库
    进入上一步生成的裸仓库目录,执行镜像推送命令,该命令会自动把所有分支、标签、远程跟踪引用、提交记录等所有Git关联内容一次性推送到目标仓库:
    cd <仓库名>.git
    git push --mirror <你的GitHub空仓库克隆地址>
    
  • 步骤3:迁移结果校验
    推送完成后不要直接删除本地临时裸仓库,先做一致性校验:
    • 新建临时目录,分别克隆CodeCommit源仓库和GitHub目标仓库,在两个仓库下分别执行git branch -a对比分支列表、执行git tag对比标签列表,确认数量和名称完全一致
    • 分别执行git log --oneline对比提交记录,确认提交哈希、提交信息、提交者信息完全匹配
  • 步骤4:本地仓库远端切换
    校验通过后,你本地之前关联CodeCommit的工作仓库,可以直接执行命令替换远端地址,后续所有操作就会直接同步到GitHub:
    git remote set-url origin <你的GitHub仓库克隆地址>

常见迁移失败原因

之前操作不成功基本都是踩了以下几个坑:

  • 克隆源仓库时用了普通git clone不带--bare参数,默认只会拉取默认分支的内容,其他分支不会被拉到本地
  • 推送时没加--mirror参数,只推送了当前本地检出的分支,遗漏其他分支、标签等内容
  • GitHub目标仓库提前做了初始化,生成了额外的初始提交,导致推送时出现分支冲突
  • 本地账号权限不足,推送时部分受保护分支没有推送成功,这种情况终端会有明确的权限报错,给对应账号开足仓库管理员权限重新执行推送命令即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 07:15:55