Gitlab project migration

如果不是要把整個 gitlab server 做搬遷,而是搬遷部分 project,或者是要把 Server B 的 projects 搬入 Server A,可以考慮這樣做。

mirror 參數

這個參數是將整個 project repository 做 mirror,等於把 server 上整個 project 全部打包(所有 branch & tag)拿下來。

$ git clone --mirror git@GITLAB_SERVER_B:NAMESPACE/PROJECT.git
$ cd PROJECT.git
$ git remote add newremote git@GITLAB_SERVER_A:NAMESPACE/PROJECT.git
$ git push -f --tags newremote refs/heads/*:refs/heads/*
$ cd ..

而有些 project 可能會有編輯 wiki page,而在 gitlab 中則是把 wiki page 當成也是一個 repository,所以可以用類似的方式來把 wiki page 做搬移。

$ git clone --mirror git@GITLAB_SERVER_B:NAMESPACE/PROJECT.wiki.git
$ cd PROJECT.wiki.git
$ git remote add newremote git@GITLAB_SERVER_A:NAMESPACE/PROJECT.wiki.git
$ git push -f --tags newremote refs/heads/*:refs/heads/*
$ cd ..