It probably happens to me once or twice a week. I try to get the current repository’s status, the log, or the contents of some specific commit when I’m greeted with a familiar error message.
git git status
git: 'git' is not a git command. See 'git --help'.
The most similar command is
init
It’s self-explanitory enough for me to understand what happened immediately. I typed “git” in my terminal. Then I got distracted. I needed to look something up, think about which message I was going to use, or go out to lunch. When I come back I instinctively type “git status”, forgetting the first part of the command was already there.
I pause while git’s belittling tone rings in my ears.
“‘git’ is not a git command.”
Defeated, I press ↑, hold ⌥ while double-tapping ←, then ⌫ four times and ⏎, to get the result I wanted.
git status
On branch master nothing to commit, working tree clean
Enough.
git config --global alias.git '!git'
By adding git as a subcommand alias1, a command is run whenever you execute git git.
Using an exclamation mark to the beginning of the alias’ value, git will run any command instead of just it’s own subcommands.
In this case it’s aliased to !git, meaning git git will be converted to git.
Using this alias, git git status will now automatically convert to git status.2
git git status
On branch master nothing to commit, working tree clean
Now, git is a git command.