A while back a colleague told me about the --fixup option for git commit and its cousin --autosquash. I’ve long been a proponent of squashing and fixing up commits; it means you can commit work earlier which in turn means less chance of data loss as well as smaller diffs being easier to reason about. With the fixup and autosquash options you do the re-organising work up front and save yourself the manual re-ordering of commits in the editor (no more of the vim yy, dd p tango).