GitLabからGitHubへの移行メモ

これまで他の実験用のWebサイトと相乗りしたメモリ1GBのカツカツの環境でGitLabを動かしてたもののかなり辛くなってきたためついカッとなってスペックを上げて対応するのではなくGitHubのプライベートリポジトリに移行する形で対応した。

以下、移行と設定のメモ。

自分のケースでは用途で複数のGitHubアカウント使ってることもあって~/.ssh/configに以下を追加(Windowsの場合もホームディレクトリの下の.sshに記す。WindowsでもIdentityFileはスラッシュ区切りかつ~/指定でよい)。
これによりgithub.comではなくprivate.github.comと指定してssh接続した際にのみ所定のキーが使われる。

Host private.github.com
  Hostname github.com
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/id_rsa_private_github

移行は予めGitHubのコンソール上でmyname/group01-repo01なるプライベートリポジトリを作っておき、その後以下を実行。--mirrorをつけることでローカルに作業ディレクトリを作らずにベアリポジトリだけ作り、かつ、全ブランチを移行できる。

git clone --mirror git@myhost.example.com:group01/repo01.git
cd repo01.git
git remote add --mirror=push github ssh://git@private.github.com/myname/group01-repo01.git
git push github
cd ..

TortoiseGitのSettings/NetworkでSSH clientを「C:\Program Files\TortoiseGit\bin\TortoiseGitPlink.exe」とかにしている場合は、PuTTYで以下のように設定すればTortoiseGit上のURLを「git@private.github.com:myname/group01-repo01.git」指定に出来る。

  • Session
    • Host Name: github.com
    • Port: 22
    • Saved Sessions: private.github.com
  • Connection
    • SSH
      • Auth
        • Private key file for authentication: ppk形式の秘密鍵