GitHub -> GitLab 移行手順例

  • 4/24 の GitLab Meetup Tokyo #16: 新年度応援 に感銘を受けて、思い切ってGitHubの ひとり organization をGitLabに移行したので手順を共有します
  • 1月か2月に GitHub無料ユーザーも無制限にプライベートリポジトリを使えるようになる となってからなんかもったいないなあと思っていた気がかりを解消できてよかったです

凡例

  • ■■■■■■ : 旧 Organization
  • ◇◇◇◇ : 新 Group

現状の確認

❯ git remote -v  
origin    git@github.com:■■■■■■/MyRepo.git (fetch)  
origin    git@github.com:■■■■■■/MyRepo.git (push)  

❯ git branch  
* master  

❯ git status  
On branch master  
Your branch is up to date with 'origin/master'.  

nothing to commit, working tree clean  

移行してみた

refs

  • https://qiita.com/flmil/items/89ca07fa976546365c49
  • 新規プロジェクトをカラで作成したときのGitLabのガイド

      Push an existing Git repository  
    
      cd existing_repo  
      git remote rename origin old-origin  
      git remote add origin git@gitlab.com:◇◇◇◇/myrepo.git  
      git push -u origin --all  
      git push -u origin --tags  

GitHubのリモートリポジトリをリネーム

❯ git remote rename origin github  

リモートリポジトリにGitLabの情報を付加

❯ git remote add origin git@gitlab.com:◇◇◇◇/myrepo.git  

GitLabのリモートリポジトリをPush

❯ git push -u origin --all  
Enumerating objects: 27, done.  
Counting objects: 100% (27/27), done.  
Delta compression using up to 4 threads  
Compressing objects: 100% (25/25), done.  
Writing objects: 100% (27/27), 7.23 KiB | 493.00 KiB/s, done.  
Total 27 (delta 4), reused 3 (delta 0)  
To gitlab.com:◇◇◇◇/myrepo.git  
 * [new branch]      master -> master  
Branch 'master' set up to track remote branch 'master' from 'origin'.  

❯ git push -u origin --tags  
Everything up-to-date  

状況確認

❯ git remote -v  
github    git@github.com:■■■■■■/MyRepo.git (fetch)  
github    git@github.com:■■■■■■/MyRepo.git (push)  
origin    git@gitlab.com:◇◇◇◇/myrepo.git (fetch)  
origin    git@gitlab.com:◇◇◇◇/myrepo.git (push)  

GitHubリポジトリの情報を削除する

❯  git remote rm github  

❯ git remote -v  
origin    git@gitlab.com:◇◇◇◇/myrepo.git (fetch)  
origin    git@gitlab.com:◇◇◇◇/myrepo.git (push)  
  • あとは、GitHubのWeb管理画面でリポジトリを削除すればOK
  • 一気に、Organizationを削除すると全リポジトリ削除できる(復元できなくなるので、十分に確認してから)