GitHubからGitLabにリポジトリを移行

2019年2月12日

GitLabについては/tag/gitlabを参照されたい

GitHubがマイクロソフトに買収されたため、GitHubを捨ててGitLabに移行する例が増えているそうだ。当然だが、私としてもマイクロソフトの全く信頼性の無いボロいサービス(になるであろう)を使うつもりなどさらさらないので、GitHubの既存のリポジトリをGitLabに移行することにする。

手順は以下の通りである。

GitHubからのインポート

New Projectをクリックする。

Import Projectをクリックし、GitHubをクリックする。

ここでGitHubへのログインを要求され、プロジェクト一覧が表示される。

一度にすべてをインポートすることもできるようだが、ここではひとつずつインポートしていく。あまりに数が多いので、どちらが最新なのかわからなくなってしまいそうだからだ。

プロジェクトが小さいからなのか、一瞬でインポートされ、GitLabの方にプロジェクトが生成されている。何の問題も無いようだ。

インポートすると、インポート候補からは消える。

GitHubのプロジェクトを削除

しかし、当然ながら、GitHubから消えるわけではない。この時点では、同じものがGitHubとGitLabの二つに存在している。

GitHubの方を消すには、プロジェクトのSettingsをクリックする。

下の方のDanger Zoneに行き、Delete This Repositoryを選択する。

ここでプロジェクト名を手入力してやると、完全に削除される。GitHubとお別れである。

ローカルリポジトリの修正

これでリポジトリがGitHubからGitLabに移動した。後は、ローカルの作業用リポジトリの設定を変更してやる。.gitの中にconfigというファイルがあるので、これを書き換えるだけだ。

[core]
    repositoryformatversion = 0
    filemode = false
    logallrefupdates = true
[remote "origin"]
    url = https://github.com/ysugimura/swingWrapper.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master
    rebase = false

となっている、githubをgitlabに変えるだけだった。ユーザ名はどちらもysugimuraであり、リポジトリ名は同一なので。

おそらくこれで問題無いと思うが、正規の方法かどうかはわからない。