Edited at

BitBucketのhgリポジトリを、githubのgitリポジトリに移行する

More than 5 years have passed since last update.

Mercurial + bitbucket でホストしている趣味のプロジェクトがいくつかあるのですが、全部 github でやれば良いよねってことで、コンバートできるかぐぐってみました。

Convert Mercurial project to Git - Stack Overflow http://stackoverflow.com/questions/16037787/convert-mercurial-project-to-git


Q. mercurial のプロジェクトを git に移行したい。コミット履歴もそっくりそのまま移行したい。

hg 関連のファイルを消して、 git init して、git add したけどコレじゃ履歴が引き継がれない。

解決策ない?

A. fast-export 使え



hg インストール

作業は、hgの入っていないLinuxマシンにて行う。(fedora-19)

python がなければ必要かも。

sudo yum install hg


リポジトリをとってくる

hg clone ssh@hg@bitbucket.org/USERNAME/PROJECT hg_repo


fast-export をとってくる

git clone git://repo.or.cz/fast-export.git


新しいリポジトリを作り、インポート

ローカルは

git init git_repo

cd git_repo
/path/to/fast-export/hg-fast-export.sh -r /path/to/hg_repo
git checkout HEAD


リモートにリポジトリを作る

リモートは github から create repository して

git remote add origin git@github.com:USERNAME/git_repo.git

git fetch
git merge origin/master
git status # if you feel uneasy
git push origin master

ぼくにもできた