git git git git git
Ever found you’ve accidentally entered too many git
s in your terminal and wondered if there’s a solution to it? I quite often type git
then go away and come back, then type a full git status
after it. This leads to a lovely (annoying) error out the box:
$ git git status
git: 'git' is not a git command. See 'git --help'.
What a git.
My initial thought was overriding the git
binary in my $PATH
and having it strip any leading arguments that match git
, so we end up running just the git status
at the end of the arguments. An easier way is to just use git-config
’s alias.*
functionality to expand the first argument being git
to a shell command.
git config --global alias.git '!exec git'
Which adds the following git config to your .gitconfig
file
[alias]
git = !exec git
And then you’ll find you can git git
to your heart’s content
$ git sha
cc9c642663c0b63fba3964297c13ce9b61209313
$ git git sha
cc9c642663c0b63fba3964297c13ce9b61209313
$ git git git git git git git git git git git git git git git git git git git git git git git git git git sha
cc9c642663c0b63fba3964297c13ce9b61209313
(git sha
is an alias for git rev-parse HEAD
.)
See what other git alias’ I have in my ~/.gitconfig
, and laugh at all the typo corrections I have in there. (Yes, git provides autocorrection if you enable it, but I’m used to these typos working!)
Now git
back to doing useful things!