Autocomplete Git Commands and Branch Names


In a terminal on Mac OS X, you can use [TAB] to autocomplete file names and file paths.

Wouldn’t it be nice if you could do the same with git commands and branch names?

Step 1: Get git-completion script

Get the git-completion.bash script and put it in your home directory:

curl -o ~/.git-completion.bash

Step 2: Update .bash_profile

Make sure that you are in your home directory:

cd ~/

Add the following code to your .bash_profile (~/.bash_profile).

if [ -f ~/.git-completion.bash ]; then
  . ~/.git-completion.bash

If you don’t have .bash_profile file just create it and append the code on the end.

Step 3: Apply the changes

The script will work for all new terminal tabs (or windows), to have it running right away you need to execute it:

source ~/.bash_profile

Step 4: Check if it’s working

Go to any folder with git repository. You should find that [TAB] now autocompletes commands and branch names.

git commands autocompletion
git commands autocompletion
git branch names autocompletion
git branch names autocompletion
  • Meg G.

    Meg G.

    Posted on

    Worked like a charm, thanks for posting this!

  • Andrey


    Posted on

    When running the command source ~/.bash_profile I get this ERROR: this script is obsolete, please see git-completion.zsh

  • Ruth Morata Gil

    Ruth Morata Gil

    Posted on

    So simple and still, for some reason, it won't work for me :/ I get the same as always when I hit tab after "git" in a folder with git repo. Oh well!

  • J


    Posted on

    This is great! I wish it worked with my git aliases. For instance, instead of typing `git checkout`, I like typing `gco`. Unfortunately I don't get branch auto-completion this way.

Leave a Reply

View Comments (4)...

Related articles:

Core Web Vitals: How to Measure and Improve Them?

VS CODE Snippets – How To Code Faster and Easier?