如何将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
相关产品推荐
相关产品推荐

