How I set up git aliases on bash

This post is over two years old, the content may be out of date.

Posted

It was almost 2 year agos I first saw someone in a tutorial using an alias for their git commands. I thought at the time it was something I should set up, but not being incredibly comfortable in the command line, I didn't look into it much further.

What's an alias?

For those that may not have heard of aliases before, they're like shortcut commands in your terminal. You type the shortcut in place of typing the whole command.

For example instead of typing git push whenever I want to push my repo, I can assign a shortcode for that command and simply type gp (or whatever shortcut I set) to do the same thing.

Magic!

Setting up an alias

This week, thinking it was about time I set up these aliases, I went off to google. I found a bunch of posts on how to create git aliases like this one and this one, but got a little overwhelmed by the different options and as with most tutorials they assumed a fair bit of up front knowledge.

Following the most simple format example, I typed my most common git actions into the command line window I already had open for my current project.



alias gs='git status '

alias ga='git add '

alias gc='git commit -m '

alias gp='git push'

alias gb='git branch '

alias go='git checkout '

alias gm='git merge '

alias gpl='git pull'

alias gl='git log'


I then tentatively tested my shiny new aliases with a gs.

It worked! Huzzah!

I went along my merry away.

Until the next day, when I got my dev environment up again and tried to use my new aliases. They didn't work.

-bash: gs: command not found

Sad face.

Setting up an alias globally

It turns out I had only created temporary aliases that existed in that sinlge CLI window only. To create global aliases that would persist in all future windows I needed to add them to my .bash_profile.

On a mac, the .bash_profile file is located in the home username folder. This was a hidden file, so I needed to show all hidden files by pressing cmd + shft + . to find it.

So in my .bash_profile file I typed the exact same code as I'd typed the day before.

alias gs='git status '

alias ga='git add '

alias gc='git commit -m '

alias gp='git push'

alias gb='git branch '

alias go='git checkout '

alias gm='git merge '

alias gpl='git pull'

alias gl='git log'

I saved the file, closed down all my terminal windows and tested the alias in a fresh window and they worked. Yay!

Other methods

Over the next couple days (thanks to the twitterverse) I found there are possibly better ways to do this. For example Atlassian has a good article that describes how to set up your aliases through the gitconfig file. One fender mentioned oh-my-zsh comes with git aliases built in. Another fender mentioned putting the git aliases in a seperate alias file and then referencing that in your .bashrc file.

I'm sure there are good reasons to choose one method over the other, but for now I'm happy with the way I've done mine as it's fine for my situation.

Jess Budd headshot

Jess is a senior software engineer and web accessibility nerd. When she’s not writing, speaking or tweeting about tech, you’ll find her putting together lego or going on walks with her doggo.