Skip to Content

Make your life easier with Git aliases

Posted on 3 mins read

If there is one tool I’m constantly using throughout the day, it must be Git! Since most of the commands I need are basically the same, I’ve created some Git aliases to reduce the number of keystrokes.

You can place these aliases in your ~/.gitconfig file, under the [alias] section. If you need project-specific overrides or aliases, you can put them in the .git/config file inside each repository too.

You can do this with a text editor or by using the git config --global alias.<name> "<command>" command.

Push current branch to the origin repository

This alias will push the branch you’re currently working in back to origin.

p = "!git push origin $(git rev-parse --abbrev-ref HEAD)"

If you want to push other branches besides the current one, you can add them as extra arguments. For example: git p master will push both the current working branch and your local master branch back.

Pull in latest changes for the current branch and rebase

Whenever I continue to work on a branch, I want to make sure I have the latest changes locally. This alias will pull in the latest changes for the current branch from origin and rebase my own local commits - if any - on top of them.

pu = "!git pull --rebase origin $(git rev-parse --abbrev-ref HEAD)"

Call with: git pu

Commit changes

Commit a little bit faster with this alias:

c = "!git commit -a -m "

Example usage: git c "My commit message"

Checkout a branch

Another short one, to checkout a different branch:

co = "!git checkout "

For example, checkout the feature/wip branch with git co feature/wip or create a new feature/new branch with git co -b feature/new.

Merge current branch into another one

On projects where we work with a staging or test branch, I regularly merge my work in progress into it so others can test it.

Because it’s not possible to pass arguments directly to a git alias, I’m using a function here (f()). That way I can chain multiple git commands. Here’s how what this alias looks like:

m = "!f() { CURBRANCH=$(git rev-parse --abbrev-ref HEAD); git co \"$1\" && git pu && git merge $CURBRANCH && git p && git co $CURBRANCH; }; f"

If you now type git m staging while on the feature/wip branch, this will happen:

  1. First, the function checks out the staging branch.
  2. It then pulls the latest changes to the staging branch from origin.
  3. Then it merges feature/wip into staging.
  4. Next, it pushes the updated staging branch back to origin.
  5. Finally, it checks out the feature/wip branch again.

Such a timesaver!

These examples are specific to the way I work but these should set you on your way to create your own!