git-log --graph --reflog
git-commit --amend
git-cherry-pick
Also, becoming fluent with creation of and switching between local, short-lived branches.With the above in order, I found I could subset the git state model:
* temporary branches rather than the "stash"
* commit tentative work to HEAD; amend, discard or set aside in a temporary branches rather than as later discoveries require
* side-step the index/cache/staging_area for most operations -- transfer directly between work tree and HEAD commit