I've been using Mercurial but would like to do a quick demo of Git.
What are the Git equivalents of:
hg init . # start a project in the current directory hg addremove # look for any added or deleted files hg commit -m "comment" # commit any uncomitted changes hg status # what have i changed since the last commit?
Overview. This extension adds the ability to work on a Git repository from Mercurial. It also allows using a Git server as a collaboration point for a team with developers using both Git and Mercurial.
The hg command provides a command line interface to the Mercurial system.
Mercurial Is Safer For Less Experienced Users By default, Mercurial doesn't allow you to change history. However, Git allows all involved developers to change the version history. Obviously, this can have disastrous consequences. With basic Mercurial, you can only change your last commit with “hg commit – amend”.
The Git-HG rosetta stone is not bad
There are a few other gotchas between the two not mentioned there. This list was cribbed from my own blog post when I went the other way (git -> hg).
Hg .hgignore
, syntax: glob is the same behaviour as git's .gitignore.
Git .git/config
, ~/.gitconfig
, use git-config to modify the values
Hg .hg/hgrc
, ~/.hgrc
, use hg help -c config
Git git commit -v<br>
Hg hg diff | less; hg commit
Git gitk<br>
Hg hg view, or thg from [TortoiseHg][1]
Git git gui<br>
Hg Mercurial doesn't ship GUI to select changesets, only console hg record
command.
Git git rebase<br>
Hg hg rebase. For git rebase --interactive
there's hg histedit, or Mercurial Queues
Git git push URL ; git remote add origin URL<br>
Hg hg push URL; $EDITOR .hg/hgrc ; [paths] default = URL
Git gitk, git log origin/master..HEAD<br>
Hg hg outgoing
Git git format-patch RANGE<br>
Hg hg email -m filename -o
Git git add . ;
Note the dot
Hg hg add ;
No dot needed.
Git git checkout REVISION-KEY<br>
Hg hg update CHANGESET
Just to fill the blanks, some of the most useful commands from Mercurial:
Hg hg record
Git git add -p; git commit
Hg hg inc [URL]
Git No real equivalent. You can only do equivalent of hg pull; hg log -r .:
Hg hg out URL
Git Please add if you know how.
For merge conflict resolution, the hg resolve
command in Mercurial has a few options that change the behaviour:
Hg hg resolve -m FILE
(marks the file as having been resolved by manually fixing up the conflict problem)
Git git add FILE
Hg hg resolve -u FILE
marks the file as having been unresolved
Git git reset HEAD FILE
to unstage the file
Hg hg resolve -l
(lists files with resolved/unresolved conflicts)
Git git status
- files that merged cleanly are added to the index automatically, those that are not have conflicts
Hg hg resolve FILE
(after a merge, attempts to re-merge the file)
Git no equivalent for re-merging that I know of.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With