1. 从原地址克隆一份裸版本库,比如原本托管于 github
```bash
# --bare 创建的克隆版本库都不包含工作区,直接就是版本库的内容,这样的版本库称为裸版本库。
$ git clone --bare git://github.com/username/project.git
```
2. 然后到新的 Git 服务器上创建一个新项目,比如 GitLab。
3. 以镜像推送的方式上传代码到 GitCafe 服务器上。
```bash
$ cd project.git
# mirror 克隆出来的裸版本对上游版本库进行了注册,这样可以在裸版本库中使用git fetch命令和上游版本库进行持续同步。
$ git push --mirror git@gitcafe.com/username/newproject.git
```
4. 删除本地代码
```bash
$ cd ..
$ rm -rf project.git
```
5. 到新服务器 GitCafe 上找到 Clone 地址,直接 Clone 到本地就可以了。
`git clone git@gitlab.com/username/newproject.git`
这种方式可以保留原版本库中的所有内容