git仓库迁移的方法

近日由于有项目迁移的需求, 所以研究了一下如何迁移Git。
要求是迁移的时候,保证所有的分支和提交记录都在,以便于查找和回档。

  1. 直接新建项目,把原有的代码拷贝进去。
    这种方法没有任何提交记录保留,不行。

  2. 把git文件夹复制过去,其他的项目代码保持不变。
    这种方法很不“计算机”,而且一些冲突文件全覆盖会发现仓库记录将损坏,亲自测试过,所以该方法也不行。

其实本质上只要是把git所有的记录原封不动的放到新项目里,再把原项目的远程仓库地址变动一下就可以达成了。

步骤如下:

1. 克隆原仓库的git镜像

1
git clone --mirror https://github.com/yourname/oldProject.git

这里克隆的全是git的内容,并没有其他代码的东西。

2. 在新的服务上创建新项目 newProject

3. 打开旧项目镜像的目录

1
cd oldProject.git

4. 设置需要迁移的目标路径

1
git remote set-url --push origin http://github.com/yourname/newProject.git

5. 推送到新项目

1
git push --mirror

此时,新项目那里已经有了所有的提交记录和代码。但是我们正在维护的代码,之后的提交也必须提交到新仓库地址上。
还需要做的事是把本地项目代码所在工程的远程仓库地址迁移到新的仓库地址。

1
git remote set-url origin newURL

使用这个命令即可完成地址切换。

想查看远程仓库地址的话使用git remote -v命令。

Snapline wechat
扫码关注我的公众号“约翰柠檬的唱片店”
Buy me a cup of Coffee