scm/hg-git-rosetta-stone
author Tomas Zeman <tzeman@volny.cz>
Fri, 18 Jul 2014 15:48:34 +0200
changeset 38 68d27bdf49c9
parent 34 11d20ddca9d8
permissions -rw-r--r--
ssl conversions

https://github.com/sympy/sympy/wiki/Git-hg-rosetta-stone

Git hg rosetta stone

Use it like a dictionary hg -> git.

Rosetta Stone
=============


|hg                   |git                                                    |
|hg cat -r rev        |git show rev:some_file                                 |
|some_file            |                                                       |
|hg clone             |git clone git://git.sympy.org/sympy.git                |
|http://hg.sympy.org/s|                                                       |
|ympy-git.hg          |                                                       |
|hg clone -U          |git clone --bare git://git.sympy.org/sympy.git         |
|http://hg.sympy.org/s|                                                       |
|ympy-git.hg          |                                                       |
|hg diff              |git diff HEAD                                          |
|hg status            |git status                                             |
|hg manifest          |git ls-tree -r --name-only --full-tree HEAD            |
|hg parents           |git show --pretty=format:'%P' -s                       |
|hg commit            |git commit -a                                          |
|hg record            |git add -p; git commit # or, for a more detailed       |
|                     |interface: git add -i; git commit                      |
|hg email -r tip      |git send-email HEAD^ # or: git format-patch HEAD^ ; git|
|                     |send-email 0001-Add-whitespace.patch                   |
|hg view              |gitk, git gui                                          |
|hg help command      |git help command                                       |
|~/.hgrc              |~/.gitconfig                                           |
|.hg/hgrc             |.git/config                                            |
|hg paths             |git remote -v                                          |
|editing paths in     |git remote add name url # see "git help remote" for    |
|.hg/hgrc             |more info how to edit paths; alternatively, you can    |
|                     |edit them by hand in .git/config too                   |
|.hgignore            |.gitignore                                             |
|.hg/hgrc [ui] ignore |.git/info/exclude                                      |
|hg add               |git add (note, it adds _content_ to index; can work on |
|                     |a hunk-by-hunk basis with -p!)                         |
|hg rm                |git rm                                                 |
|hg push              |git push                                               |
|hg pull              |git fetch                                              |
|hg pull -u           |git pull                                               |
|hg addremove         |git add -A (or: git add .; git ls-files --deleted xargs|
|                     |git rm)                                                |
|hg revert -a         |git reset --hard                                       |
|hg revert some_file  |git checkout some_file                                 |
|hg strip 2fccd4c     |git reset --hard 2fccd4c^                              |
|hg export            |git format-patch                                       |
|hg import --no-commit|git apply some.patch                                   |
|some.patch           |                                                       |
|hg import some.patch |git am some.patch                                      |
|hg out               |git fetch && git log FETCH_HEAD..master                |
|hg in                |git fetch && git log master..FETCH_HEAD                |
|hg update tip        |git checkout HEAD # or this: "git checkout master", or |
|                     |"git merge FETCH_HEAD", depending on what you did      |
|                     |before this                                            |
|hg update -C         |git checkout -f                                        |
|hg update some.branch|git checkout some.branch # Note that "git branch       |
|                     |some.branch" is not the same as this.                  |
|hg qimport           |stg something (A separate patch manager extension is   |
|                     |probably not necessary in git -- normal workflow       |
|                     |combined with git rebase -i should cover your needs)   |
|hg qpush             |(see hg qimport)                                       |
|hg qpop              |(see hg qimport)                                       |
|hg qimport -r tip    |?                                                      |
|hg qnew -f some.patch|?                                                      |
|hg resolve -a -m     |git add -u                                             |
|hg glog              |git log --graph --all --decorate # or: git log --graph |
|                     |--all;                                                 |
|hg verify            |git fsck                                               |


Setup
=====

~/.gitconfig:

 [user]
     name = Ondrej Certik
     email = ondrej@certik.cz

 [color]
     ui = auto

 [color]
     decorate = short

 [alias]
     ci = commit
     di = diff --color-words
     st = status

     # aliases that match the hg in / out commands
     out      = !git fetch && git log FETCH_HEAD..
     outgoing = !git fetch && git log FETCH_HEAD..
     in       = !git fetch && git log ..FETCH_HEAD
     incoming = !git fetch && git log ..FETCH_HEAD