要将整个Git代码库迁移到新仓库,请按照以下步骤操作:
方法一:通过现有本地仓库迁移
-
更新本地仓库
git fetch origin --all --tags # 获取所有分支和标签
-
添加新远程仓库
git remote add new-origin <新仓库URL> # 添加新远程,例如使用名称new-origin
-
推送所有分支到新仓库
git push new-origin --all # 推送所有本地分支到新远程
-
推送所有标签到新仓库
git push new-origin --tags # 推送所有本地标签到新远程
方法二:镜像克隆(推荐,更彻底)
-
克隆旧仓库的镜像
git clone --mirror <旧仓库URL> # 创建裸仓库,包含所有分支、标签和历史 cd <仓库目录>.git # 进入克隆的裸仓库目录
-
修改远程地址为新仓库
git remote set-url origin <新仓库URL> # 更新远程地址到新仓库
-
推送所有内容到新仓库
git push --mirror # 强制推送所有引用(分支、标签等)
迁移后操作
-
更新本地远程地址(若需替换旧仓库):
git remote rename origin old-origin # 可选:重命名旧远程 git remote rename new-origin origin # 将新远程设置为origin
-
通知团队成员:
- 让团队成员更新本地仓库地址:
git remote set-url origin <新仓库URL>
- 或重新克隆新仓库。
- 让团队成员更新本地仓库地址:
注意事项
- 权限问题:确保对新仓库有写入权限。
- 清理历史(可选):若需删除敏感数据或大文件,使用
git filter-repo
工具处理后再迁移。 - 验证迁移:检查新仓库的分支、标签和提交历史是否完整。
两种方法均可实现完整迁移,镜像克隆方式更彻底,适合确保所有引用(包括隐藏分支)都被迁移。根据实际情况选择最适合的方式。