for a in $(git var -l | sed -nE 's/^alias\.([^=]*)=.*/\1/p') ; do
if ! command -v g$a >/dev/null 2>&1 ; then
alias g$a="git $a"
fi
done
Which creates a shell alias prefixed with `g` for each of my configured git aliases if there is no conflict. So I get not only the `gst` command you mentioned and ones like `gco` (because I have Subversion-equivalent aliases for common commands), but more complex ones like `gstpup` (stash, pull upstream, stash pop). Combined with `alias g=git`, I seldom type "git" and the setup is pretty convenient. I've thought of making the above alias unconditionally, or report conflicts, as it can be jarring when an alias is missing. I've also considered expanding it to all git commands because sometimes my custom ones live as `git-$command` scripts and not aliases.
For me, it's because `gst` will only work on my machine. I like feeling at home on any system, so I'm loathe to depend heavily on aliases and configuration. One of the things I like about git git is that it appears to improve my experience without significantly affecting my habits.
I used to do that, but I found it wasn’t actually saving me any cognitive load.
My newer philosophy toward git aliases is the one described here: http://gggritso.com/human-git-aliases. After reading this I totally overhauled my .gitconfig and replaced it with the one described here and I’m a lot happier.
I don't use either one anymore. I've switched to magit, which is faster than both and can also give you interactive menus and reminders of commands if you want.
Why type 'gst'? I use C-x g, which is bound to magit-status:-)
Somewhat more seriously, I haven't had to worry about typing 'git git' because I haven't typed 'git' on a daily basis in years. I think I've probably typed it once in the last month.