ok, so I needed the git autocompletion script.
I got that from this url:
curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o ~/.git-completion.bash
No need to worry about what directory you're in when you run this as your home directory(~
) is used with the target.
Then I added to my ~/.bash_profile
file the following 'execute if it exists' code:
if [ -f ~/.git-completion.bash ]; then
. ~/.git-completion.bash
fi
Update: I'm making these bits of code more concise to shrink down my .bashrc
file, in this case I now use:
test -f ~/.git-completion.bash && . $_
Note: $_
means the last argument to the previous command. so . $_
means run it - "it" being .git-completion.bash
in this case
This still works on both Ubuntu and OSX and on machines without the script .git-completion.bash
script.
Now git
Tab (actually it's git
TabTab ) works like a charm!
p.s.: If this doesn't work off the bat, you may need to run chmod u+x ~/.git-completion.bash
to grant yourself the necessary permission:
chmod
is the command that modifies file permissions
u
means the user that owns the file, by default its creator, i.e. you
+
means set/activate/add a permission
x
means execute permission, i.e. the ability to run the script
export FIGNORE=DS_Store
works for me.
The GNU Bash manual provides extensive information on programmable completion.
Specifically, from the documentation on bash variables
FIGNORE [is a] colon-separated list of suffixes to ignore when performing
filename completion. A file name whose suffix matches one of the
entries in FIGNORE is excluded from the list of matched file names. A
sample value is ‘.o:~’
If you are concerned that there might be existing suffixes in FIGNORE
, then you can use:
export FIGNORE=$FIGNORE:DS_Store
Best Answer
Third version, which should now both be case insensitive and work within quotes.