For my text editor I use vim. And with it I use a number of bundles to help simplify my life. Integrating with the editor saves time, requires less keystrokes and generally just makes it easier to process data. With vim-rails, I can switch between an action and its view or test with only two keystrokes. Also, I can cherry pick tests to run and have a quick fix list in a buffer for when they break.
Once that buffer is generated I can use
1 2 3 4 D q Ctrl-w Ctrl-k
You can repeat that for every staged file until everything looks good. Then I can choose to stage it for a commit with
- on the filename in the buffer.
After everything is staged, I can commit with
C, enter my haiku, and it is done.
Of relevance is a script which adds the branch name after the current directory listed in bash. This makes sense because operating in a different branch is (kind of) like a whole another subdirectory. It also shows whether the branch has uncommitted changes so you can quickly get a better idea of where you were last or what you are looking at.
Aliases for the subcommands are also nice.
And bash autocompletion for git is just icing on the cake. It works for:
Finally, here is a list of some of the plugins I use every day. And since they are just clones from a GitHub repository, updating them is as easy as a fast forward. You can read more in depth about these from their respective wiki pages and the manuals included with them.