Migrate from Mercurial Hg to Git
I had one last Mercurial project that I still actively developed. Everything new I’ve completed restarted with Git but this was a last hold out.
$ git push origin master remote: error: refusing to update checked out branch: refs/heads/master ... ! [remote rejected] master -> master (branch is currently checked out) error: failed to push some refs to '/home/mirandam/git/project'
After some trial and error, the following steps worked exactly how I expected.
- My Git projects are in
~/git(where the converted project will end up)
- My Mercurial projects are in
~/hg(this is where the project to be converted will live)
- I use
~/workas my working directory (where I clone, checkout, etc.)
- I use
~/tmpas just a scratch temporary directory
[mirandam@atlas ~]$ mkdir ~/git/project-new [mirandam@atlas ~]$ cd ~/git/project-new [mirandam@atlas project-new]$ git init --bare [mirandam@atlas project-new]$ cd ~/tmp [mirandam@atlas tmp]$ git clone git://repo.or.cz/fast-export.git [mirandam@atlas tmp]$ cd ~/work/ [mirandam@atlas work]$ git clone ~/git/project-new [mirandam@atlas work]$ cd ~/work/project-new [mirandam@atlas project-new]$ ~/tmp/fast-export/hg-fast-export.sh -r ~/hg/project-old [mirandam@atlas project-new]$ git checkout HEAD [mirandam@atlas project-new]$ git push origin master
Now in my work directory I can perform changes and continue working.