git 仓库完整迁移

目录

从一个 git 托管服务完整迁移仓库到另一个服务,保留所有版本历史。

迁移步骤

  1. 从原地址克隆一份裸版本库(以 GitHub 为例):
git clone --bare git://github.com/username/project.git

--bare 标志创建不包含工作区的裸版本库,直接包含版本库内容。

  1. 在新的 Git 服务器上创建一个新项目(如 GitCafe)。

  2. 以镜像推送方式上传代码到新服务器:

cd project.git
git push --mirror git@gitcafe.com/username/newproject.git

--mirror 标志使裸版本库对上游版本库进行了注册,可以在裸版本库中使用 git fetch 命令进行持续同步。

  1. 删除本地裸版本库:
cd ..
rm -rf project.git
  1. 从新服务器找到 Clone 地址,克隆到本地:
git clone git@gitcafe.com/username/newproject.git

这种方式完整保留了原版本库中的所有内容和历史记录。

#git