We use SVN at work. I use git-svn to manage my commits and give me faster local access to changes. I suppose I may be guilty of some of the lies Paul Stadig speaks of in his article.
I use git add -p to cherry pick changes, git stash to set aside incomplete changes, and git amend to commit changes I missed before pushing up to master.
I absolutely love git add -p. It allows me to work on a series of changes without interrupting my flow to make a commit. I may work for an hour or so, and group my changes into logical commits containing specific tasks. I take care to make sure I don’t break code between commits, but that’s bound to bite me in the ass sooner or later.
I often use git amend to fix my last commit message and sometimes to include a missed change. I rarely use git rebase –interactive, and only to include changes I missed in a recent local commit.
Looks like it may be time to rethink my practices.