git 仓库完整迁移
目录
从一个 git 托管服务完整迁移仓库到另一个服务,保留所有版本历史。
迁移步骤
- 从原地址克隆一份裸版本库(以 GitHub 为例):
git clone --bare git://github.com/username/project.git
--bare 标志创建不包含工作区的裸版本库,直接包含版本库内容。
-
在新的 Git 服务器上创建一个新项目(如 GitCafe)。
-
以镜像推送方式上传代码到新服务器:
cd project.git
git push --mirror git@gitcafe.com/username/newproject.git
--mirror 标志使裸版本库对上游版本库进行了注册,可以在裸版本库中使用 git fetch 命令进行持续同步。
- 删除本地裸版本库:
cd ..
rm -rf project.git
- 从新服务器找到 Clone 地址,克隆到本地:
git clone git@gitcafe.com/username/newproject.git
这种方式完整保留了原版本库中的所有内容和历史记录。