Improving your Git work-flow with aliases.
Published on Dec 07, 2013It may not feel like much but if you use git (or any command line tool) all day long, you are typing lots and lots of extra keywords in a given day.
If you commit regularly you will find yourself typing this every fifteen minutes or less.
git status
git add -A
git commit -m "Message...."
That adds up to 36 keys plus the length of the message. Even if you commit every 15 minutes thats 144 keywords an hour, times 8 adds to more than 1000 keywords a day.
Let’s assume you are also pushing at least once an hour.
git pull --rebase
npm test
git push
That’s another 256 keys by the end of the day.
You can replace the test line for anything you like, rake test:all or similar.
I actually push more than 8 times a day. In a good day I may be pushing after every commit or two so let’s double that.
I’m at 1664 keys pressed during the day just to make my tools do what I want.
Aliases to the rescue.
If you are in a *nix system you can take advantage of command aliases and functions. I use bash and some of my dot files can be found in my repo on Github:https://github.com/hgarcia/DynamicProg/tree/master/dot_files
Let’s see what a commit looks like in my case
gst
gAc "Message"
I reduce the fixed number of keys from 36 to 6 or 24 keys an hour, or 192 keys a day.
My push scenario is a bit less efficient.
gpr
npm test
gpush
It still reduced the keys 50% to just 128 keys pressed by the end of the day.
In some cases I map a shortcut to perform all the operations at once. gprtpu
The reason gpush is so long is to give me some time to thing while typing before pushing.
Some other savings.
Even when those are the commands I use all day long, all the time. I also created aliases for a few other.
gm for git merge
gl for git log
gco [branch-name] for git checkout [branch-name]
gb for git branch
I rarely use the next anymore, my current team gets really mad at me if I don’t rebase
gp for git pull
This one will open the editor to modify the commit message.
gca for git commit —amed
I use the next one all the time when I forget to add a file or made a few additional changes that should be added to the same commit
gcan for git commit —amend —no-edit
It may not look like much but once you start counting each key and adding things up they do make a bit difference. Also fewer keystrokes make you faster and more productive.