As computer programmers evolve in their craft, they increasingly identify repetitive tasks at all levels. One of the most basic levels is typing on the keyboard. Some programmers choose to invest effort and minimize typing. I am one of those people.
Git commands are among the ones I use the most, as listed in decreasing order with the number of times for each:
1241 gc 637 gco 583 v 419 git 373 cd 368 rm 316 mv 302 yarn 299 gb 247 gto 215 ga 213 c 191 gst 160 136 bundle 124 © 115 mkdir 114 cp 106 npm 106 gt
If you’d like to see yours, you can run the following on the terminal: history | awk 'BEGIN {FS="[ \t]+|\|"} {print $3}' | sort | uniq -c | sort -nr | head -n 20
Please note that the number 20 at the end is the number of results to retrieve.
Back to my own history, you can see that:
- I use a lot of aliases
- Most of them are git-related, and that’s why they start with a
g
;gc
is git commit,gco
is git checkout and so on.
Recently I have taken this to the extreme, and so far the results have been excellent. Below are the commands I am able to run:
c (git commit or git commit -m, depending on the args passed)
p (git push)
a. (git add .)
b (git checkout -b)
The c
function works for the following cases:
- c (will open the text editor for a long commit message)
- c “Your commit message” (acts as an alias for
git commit -m
- c Your commit message (the one I love as you just type c plus the message, and it works)
While p
and a.
are calls with no args, with b
you must simply add a branch name.
These are extremely simple improvements to the flow, and together with many others that I created or that I use from libraries, they make the path from brain to computer shorter and more pleasant.
To see how these are implemented, please visit this gist: https://gist.github.com/gusaiani/70736c970c2b2d4020006eb7dd31bc40
The commands in the gist which are not defined in this file come from oh-my-zsh plugins.