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

如何将GitHub仓库AAA迁移至空仓库BBB并保留提交历史?

如何将GitHub仓库AAA迁移至空仓库BBB并保留提交历史?

嘿,作为GitHub新手,这个迁移需求其实挺常见的,我给你两种靠谱的方法,都能完整保留所有提交历史,选适合你的就行~

方法一:镜像克隆(完整迁移所有分支、标签及提交历史)

这种方法会把原仓库的所有数据(包括所有分支、标签、提交记录)完整迁移过去,适合需要完全复刻原仓库的场景:

  • 打开终端/命令提示符,先镜像克隆原仓库AAA到本地:
    git clone --mirror https://github.com/你的用户名/AAA.git
    
    这里的--mirror参数是关键,它会克隆整个仓库的完整镜像,比普通克隆包含更多仓库元数据。
  • 进入克隆出来的镜像仓库目录:
    cd AAA.git
    
  • 将远程仓库地址替换为空仓库BBB的地址:
    git remote set-url origin https://github.com/你的用户名/BBB.git
    
  • 把所有内容推送到新仓库BBB:
    git push --mirror
    

方法二:普通克隆迁移(仅迁移主分支及提交历史)

如果你只需要迁移主分支(比如main或master)和对应的提交历史,不需要其他分支或标签,用这个方法更简单:

  • 克隆原仓库AAA到本地:
    git clone https://github.com/你的用户名/AAA.git
    
  • 进入本地仓库目录:
    cd AAA
    
  • 修改远程仓库地址为BBB的地址(两种方式任选其一):
    # 方式A:直接修改现有远程地址
    git remote set-url origin https://github.com/你的用户名/BBB.git
    
    # 方式B:先移除原远程,再添加新的
    git remote remove origin
    git remote add origin https://github.com/你的用户名/BBB.git
    
  • 推送主分支及所有提交历史到新仓库:
    # 若主分支是main
    git push -u origin main
    # 若主分支是master则替换为
    git push -u origin master
    

注意事项

  • 确保BBB是完全空的仓库:如果创建BBB时自动生成了README、.gitignore或LICENSE文件,先在GitHub上删掉这些文件,否则推送时会出现冲突。
  • 权限问题:确认你拥有BBB仓库的推送权限,要是用HTTPS地址推送时反复提示密码,可以换成SSH地址(前提是你已经配置了GitHub SSH密钥)。
  • 验证结果:推送完成后,去BBB仓库看看,提交历史、folder1和folder2应该和AAA完全一致~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:44:06