upvote
My git experience got a lot better after I built scripts and customized the git config files to fully exploit:

  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

reply
That's a cop out. Not every CLI sucks so bad it needs a wrapper.
reply
No it's not -- powerful CLIs with lots of features are made to be wrapped
reply
Even as a CLI it’s not great. git checkout is extremely overloaded.
reply