I've followed the process for git-completion as per the description provided at https://medium.com/@farooqyousuf/autocomplete-git-commands-and-branch-names-in-terminal-on-mac-os-x-4e0beac0388a:

The first step is to execute this command in your terminal window, this is basically grabbing the ‘git-completion.bash’ script and putting it in your home directory.

curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o ~/.git-completion.bash

Now add this line to your ‘~/.bash_profile’. This will allow the execution of the git autocomplete script if it present

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

You can now restart all your terminal windows or just refresh the terminal window you wish to use this script in. To refresh do:

source ~/.bash_profile

Following is the error I'm getting while hitting tab key after typing git:

unknown option: --list-cmds=list-mainporcelain,others,nohelpers,alias,list-complete,config
usage: git [--version] [--help] [-C <path>] [-c <name>=<value>]
  [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
  [-p | --paginate | --no-pager] [--no-replace-objects] [--bare]
  [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
  <command> [<args>]
  • Whaty version of git are yiuy using and what version does bash_completion ask for? – Mark Jun 15 at 12:49
  • git version 2.17.1 – Rishi Kulshreshtha Jun 15 at 12:51
  • I'm getting the same on Mac and Ubuntu too. git versions 2.4.7 and 2.17. – wisbucky Jun 19 at 0:02
up vote 38 down vote accepted

I ran into the exact same problem. After some digging, I finally figured out what the root problem is.

They made some major changes to the git-completion.bash script which requires a new feature in git v2.18, --list-cmds. The problem is that none of the package managers have updated to git v2.18 yet.

Most of the instructions out there say to download raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash . But that is not necessarily the best option because sometimes you will be downloading a newer git-completion.bash than your version of git supports.

So the solution is to download the git-completion.bash version that matches your git version. Then source it again. In this case:

https://raw.githubusercontent.com/git/git/v2.17.1/contrib/completion/git-completion.bash

Notice that it is referencing v2.17.1 instead of master. Later, when you install git v2.18, then you can switch back to master, or v2.18 tag.

  • 1
    Thanks a ton!! I was looking for the similar solution, as I remember the git-completion.bash was working earlier. – Rishi Kulshreshtha Jun 19 at 7:30
  • Fan-bloody-tastic – bhu Boue vidya Aug 14 at 5:17

Don't build it from source; instead install from MacPorts.

To install git with auto-completion, issue the following command:

 $ sudo port install git +bash_completion

close and reopen your Terminal and git completion should work

  • I've tried this but didn't resolve the issue. It's still the same. – Rishi Kulshreshtha Jun 15 at 12:40
  • Issue this command: sudo find / -type -name "git-completion.bash" and post the results to your question. – Allan Jun 15 at 13:17

Upgrading the git to the latest version is the simplest solution. https://git-scm.com/download/mac

After that make sure you follow the steps

  1. curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o ~/.git-completion.bash

  2. Add this small command into the .bash_profile file if [ -f ~/.git-completion.bash ]; then . ~/.git-completion.bash fi

You should verify your git version and make sure it is updated to at least 1.8.

I had an older version 1.7.11 but that didn't work and got the same error you have.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.