Suppose you have:
A-B-C
Now your build/test fails. The fix should be merged in A. My current work-flow is like this:
$ git
My current git work flow is so --fixup/--squash intensive, that I wrote a new git-fixup command that handles most of the annoying bits automatically:
git fixup shows the modified files grouped under that latest commits that touch the same filesgit fixup -a commits all those changes as --fixup changes with their corresponding "parent" commitsgit fixup -r does an automatic git rebase --autosquash for all the fixup commitsA lot of changes are such that just the three commands above are enough to get the job done, no copy-pasting of commit-id's or reading thru the git log to find the right --fixup targets.
Source: https://github.com/ohmu/git-crust