GitHubにレポジトリを移行する方法

他の場所にあるリポジトリをGitHubに移行させるための方法を書いたメモ。

移行元リポジトリをローカルにclone

$ git clone https://orig.repo.example.com/

ここで、https://orig.repo.example.com/は移行元リポジトリのURL。

ローカルリポジトリにある.git/configの編集

cloneしてできたローカルリポジトリで、.git/configにある以下の行をコメントアウトする。

$ cd repo-name/
$ vi .git/config

[remote "origin"]
       fetch = +refs/heads/*:refs/remotes/origin/*
       url = https://orig.repo.example.com/
[branch "master"]
       remote = origin
       merge = refs/heads/master

ここで、repo-nameリポジトリの名前。

移行先リポジトリの作成

GitHubにログインし、新規リポジトリを作成する。

移行先リポジトリへのpush

GitHubのページに表示される指示に従って、GitHubにある移行先リポジトリをローカルリポジトリに登録し、移行先リポジトリにpushする。

$ git remote add origin git@github.com:foo/bar.git
$ git push -u origin master

ここで、git@github.com:foo/bar.gitは移行先リポジトリ

移行先リポジトリにおけるブランチとタグの追加

このままだと、GitHubの移行先リポジトリにブランチはmasterのみ、タグはなしなので、追加する。

まず、ローカルリポジトリで、以下のシェルスクリプトを実行する。

実行すると、ローカルリポジトリにブランチが作成される。作成されるブランチは移行元リポジトリにあるものである。

次に、ローカルリポジトリにあるブランチとタグを移行先リポジトリにpushする。

$ git push --all
$ git push --tags