📦

GitHub -> GitLab 移行手順例

2020/10/02に公開

published_at: 2019-04-27 14:33


  • 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を削除すると全リポジトリ削除できる(復元できなくなるので、十分に確認してから)

Discussion