Navigation is intuitive, diffs are great, discarding and commiting hunks is superb, and it's snappy. It's really an outstanding interface for git!
This is my one fear. I am however willing to put up with this decay given the increase in productivity. It's up there with org-mode as an emacs feature.
You can always see what command Magit is running behind the scenes by hitting `$`, in case you're curious -- I've learned a few things this way.
Next up to play with: whazzup.
Once I got used to the few keys, it is much better than anything else I saw before, and much faster than doing it manually.
Moving picks up or down with one key, killing it, fixup, squash, inspection, ... all with one key.
(require 'package) ;; You might already have this line
'("melpa" . "http://melpa.org/packages/"))
(when (< emacs-major-version 24)
;; For important compatibility libraries like cl-lib
(add-to-list 'package-archives '("gnu" . "http://elpa.gnu.org/packages/")))
(package-initialize) ;; You might already have this line
I use emacs- but I don't tend to customize it much.
'("melpa" . "http://melpa.milkbox.net/packages/") t)
(dolist (p packages)
(when (not (package-installed-p p))
do this periodically to get your list updated w/ new packages and the latest releases.
I highly recommend that you take a couple of days or so and try playing around with packages that apply to your use. That's where it really shines.
If you give developers a "lazy" option, a lot will default to it, which isn't ideal. -m is an alternative for a quick commit and end up being front and center when using the CLI.
I have flyspell-mode enabled for git-commit-mode. Avoids embarrassing typos in my git commit log.
It's little stuff like this adding up, making Emacs too great to ever be without.
I played around with it, and didn't see any advantage over using git commands.
Then I tried pushing a change. I was expecting some confirmation on what refspec to use... but no! Magit pushed my change directly to refs/heads instead of refs/for, completely bypassing gerrit code review.
I got burned. That was it; I'm never using Magit again.
As with many emacs commands you use C-u if you want to specify the refspec to push to.