リポジトリの複製と移行

既存のリポジトリを複製して、別のリモートリポジトリに移行する場合のメモ。既存のリポジトリからbareリポジトリを作成する。サーバに転送するためにtarでもしておく。

$ git clone --mirror http://foo/bar.git hoge.git
$ tar zcvf hoge.git.tar.gz hoge.git
$ scp hoge.git remote-server:

リポジトリホスティングするサーバ側では以下の作業を行い、クライアントからアクセスできるようにする。gitのプロトコルにはHTTPを用い、webサーバのユーザ/グループはwww-dataであるとする。

$ tar zxvf hoge.git.tar.gz
$ mv hoge.git wwwに公開するディレクトリ
$ cd !$
$ chown -R www-data:www-data hoge.git
$ touch hoge.git/git-daemon-export-ok
$ cd hoge.git
$ git update-server-info

クライアントからcloneできることを確認する。

$ git clone http://remote-server/hoge.git