Solutions to this?

git-completion and git-prompt (if you can, use ZSH, since its completion is much more informative)

CLI wrappers / porcelain:

Trainers: