(mandatory answer: a note about Magit)
You have your workflow with git within the shell. Fine. Can I suggest to use git from within emacs, with the Magit package ?
http://wikemacs.org/wiki/Magit
http://magit.vc/
Magit allows to do many many stuff with a few keys and an interactive interface. Maybe my favorite one is the interactive rebase. In the shell, I'd type something like (sorry I forgot the precise syntax!)
git rebase -i HEAD~~~~
right ? Then I replace every "pick" with another keyword.
With magit, I'll call the magit status (M-x magit-status
, or my custom S-g
). I'm displayed a nice window from where I can explore the repo and fire actions:

I call ll
to see a short list of commits. I put the cursor on the one I want to rebase from and I either see the menu either type r
. I'm displayed a little menu with different options. I choose e
for interactive. I'm displayed the commits with "pick" in front of them and at each one I type f
to fixup, r
to reword, etc.
It's so handy, hope you didn't know about it and that you'll like it.