.git-completion.bash producing error on macOS Sierra 10.12.6
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>]
Solution 1:
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.
Solution 2:
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
curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o ~/.git-completion.bash
Add this small command into the
.bash_profile
fileif [ -f ~/.git-completion.bash ]; then . ~/.git-completion.bash fi
Solution 3:
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
Solution 4:
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.