Back to Blog
Git8 min read

Get to know Git aliases

Andres Tascon

Andres Tascon

May 20, 2024

Get to know Git aliases

Git aliases are a powerful way to boost your productivity by creating shortcuts for commonly used Git commands. In this article, we'll explore how to set up and use Git aliases effectively, along with some useful examples that can streamline your workflow.

1. What are Git Aliases?

Git aliases are custom shortcuts that you can create to replace longer Git commands. They allow you to save time by typing less while performing common Git operations. Aliases can be as simple as shortening a command or as complex as combining multiple commands into a single alias.

2. Setting Up Aliases

There are two main ways to set up Git aliases: temporary and permanent. Let's explore both methods.

2.1 Temporary Aliases

Temporary aliases are created using the git config command with the --global flag. These aliases are stored in your global Git configuration file and are available across all your repositories.

git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit

With these aliases set up, you can now use git st instead of git status, git co instead of git checkout, and so on.

2.2 Permanent Aliases

For more permanent aliases, you can edit your Git configuration file directly. This file is typically located at ~/.gitconfig on Unix-based systems or C:\Users\YourUsername\.gitconfig on Windows.

[alias]
    st = status
    co = checkout
    br = branch
    ci = commit
    unstage = reset HEAD --
    last = log -1 HEAD
    visual = !gitk

This configuration adds several useful aliases to your Git setup. The ! at the beginning of the visual alias indicates that it's an external command rather than a Git subcommand.

3. Useful Git Aliases

Now that we know how to set up aliases, let's explore some useful examples that can enhance your Git workflow.

3.1 Status Aliases

Status aliases help you quickly check the state of your repository.

git config --global alias.st "status -sb"
git config --global alias.ll "log --stat --abbrev-commit"

The st alias provides a more concise status output with branch information, while the ll alias shows a detailed log with statistics for each commit.

3.2 Commit Aliases

Commit aliases streamline the process of creating and managing commits.

git config --global alias.amend "commit --amend --no-edit"
git config --global alias.cm "commit -m"
git config --global alias.cam "commit -am"

These aliases make it easier to amend commits, create commits with messages, and add and commit changes in one step.

3.3 Branch Aliases

Branch aliases help you manage branches more efficiently.

git config --global alias.b "branch -v"
git config --global alias.new "checkout -b"
git config --global alias.delete "branch -d"

These aliases provide shortcuts for viewing branch information, creating new branches, and deleting branches.

3.4 Log Aliases

Log aliases enhance your ability to view and analyze commit history.

git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
git config --global alias.hist "log --pretty=format:'%C(yellow)%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

These aliases create beautifully formatted log outputs with color coding, graph visualization, and concise commit information.

4. Advanced Aliases

Beyond simple command shortcuts, Git aliases can be used to create more complex workflows and custom scripts.

4.1 Custom Scripts

You can create aliases that execute custom scripts or combine multiple Git commands.

git config --global alias.cleanup "!git branch --merged | grep -v '\*\|master\|main' | xargs -n 1 git branch -d"
git config --global alias.uncommit "reset --soft HEAD~1"

The cleanup alias deletes all merged branches except master/main, while the uncommit alias undoes the last commit while keeping the changes staged.

4.2 External Commands

Git aliases can also execute external commands or scripts.

git config --global alias.visual "!gitk"
git config --global alias.gui "!git gui"
git config --global alias.difftool "!git difftool"

These aliases launch external Git GUI tools for visualizing your repository, making changes, and comparing differences.

5. Best Practices for Using Git Aliases

  1. Keep it Simple: Create aliases that are easy to remember and type. Avoid overly complex aliases that might confuse you or others.
  2. Be Consistent: Use consistent naming conventions for your aliases. For example, use st for status, co for checkout, etc.
  3. Document Your Aliases: Keep a list of your aliases and their purposes, especially if you create complex ones.
  4. Share with Your Team: If you're working in a team, consider sharing useful aliases with your colleagues to improve everyone's productivity.
  5. Regularly Review and Update: As your workflow evolves, review and update your aliases to ensure they remain useful and relevant.

6. Conclusion

Git aliases are a powerful tool that can significantly improve your productivity when working with Git. By creating shortcuts for commonly used commands and complex workflows, you can streamline your development process and focus more on writing code rather than typing commands.

Whether you're a Git novice or an experienced developer, taking the time to set up and customize your Git aliases will pay dividends in the long run. Start with the basic aliases and gradually add more advanced ones as you become more comfortable with Git and identify areas where you can further optimize your workflow.

Remember that the best aliases are the ones that match your workflow and make your daily Git operations more efficient. Experiment with different aliases, and don't be afraid to modify or remove them as your needs change.

Share this article

Share this article