GitLabからGitHabへの移行

 f:id:petit_stella:20190110234248p:plain

諸事情によりGitLabからGitHubへ移行することになったため,移行手順をまとめたいと思う.

なぜ移行することになったか

今まで,作成したプログラムのソース管理はGitHub,論文のTeXの管理はGitLabというような使い分けを行っていた.

論文の管理のみGitLabで行っていた主な理由は以下の通りです.

  1. プログラム系と論文系でサービスを分けたかった
    リポジトリ一覧で両者が入り混じるのはなんとなく気持ち悪い
  2. 無料会員でもリポジトリを非公開にできる
    ソースコードは公開する可能性があるが,基本的に論文原稿のTeXは非公開にしたい
  3. GitLabではリポジトリを「プロジェクト」というまとまりで管理できた
    → 雑誌投稿用の学会用などのカテゴリ毎に原稿を管理できて便利

しかし,諸事情によりOverleafというTeXのサービスを利用することになったため色々調べたところ,OverleafはGitHubと直接連携ができて非常に便利らしい.

また,GitHubでもStudentであれば無料で非公開のリポジトリを作れることを知った(今更).

さらに,GitHubではGitLabのようにリポジトリをフォルダ分けのように整理することはできないものの,言語毎にフィルタをかける等すればそこまで乱雑にならないことにも気が付いた.

そこで,今後のことも考えて,この度GitLabからGitHubへ移行することとした.

移行手順

どうやらミラーリングやインポートなどを行えば直接GitLabからGitHubリポジトリを移行できるようだが, 今回はローカルのリポジトリのリモート先をGitLabからGitHubに変更する形を取った.

GitHub上に移行先のレポジトリを作る

GitHub上のNew repositoriesから新たにリポジトリを作成する.

特に注意する点はないが,リポジトリ名は移行元と同様にしよう.

ローカルリポジトリGitHubをaddする

まず,移行したいローカルリポジトリが,どのリモートリポジトリに紐づいているかを確認しよう. ターミナルから以下のコマンド入力することで,その一覧が表示される.

git remote -v

出力:
origin git@gitlab.com:[リポジトリ名].git (fetch)
origin git@gitlab.com:[リポジトリ名].git (push)

上記の通り,GitLabと紐づいていることが確認できる.

次に,GitLabとの紐づけを削除し,先ほど作成したGitHub上のリモートリポジトリを追加する.

以下のコマンドで既存のリモートリポジトリを削除.

git remote rm origin

そして,GitHub上のリモートリポジトリを新たに追加する.

git remote add origin [リモートリポジトリ名]
git push -u origin master

以上により,ローカルリポジトリのリモート先をGitHubに変更できた.

実際に,もう一度git remote -vを実行してみると,リモートリポジトリがGitHubになっていることが確認できるはずだ.