0x01 背景
因为可能存在的各种原因,有时我们需要对Git代码仓库进行迁移。如何原封不动的迁移呢?这就是本文要解决的问题。
0x02 操作步骤
1. 从原仓库地址clone一份裸版本库
$ git clone --bare git://git_old.xxx.com/project_old.git
--bare :创建的克隆版本库都不包含工作区,直接就是版本库的内容,这样的版本库就称为裸版本库
2. 创建一个新的项目仓库
3. 以镜像推送的方式上传代码到新的仓库
$ cd project_old.git
$ git push --mirror git://git_new.xxx.com/project_new.git
--mirror :克隆出来的裸版本对上游版本库进行了注册,这样可以在裸版本库中使用git fetch命令和上游版本库进行持续同步
4. 删除本地旧代码
$ cd ..
$ rm -rf project_old.git
5. 从新仓库地址clone签出代码
$ git clone git://git_new.xxx.com/project_new.git
搞定!现在代码保留了原版本库中的所有内容及提交记录。