Install Bash git completion

Tam Nguyen edited this page Sep 19, 2016 · 33 revisions

git-flow completion requires git-completion to work. How exactly you go about installing git-completion varies wildly from system to system, so it's hard to give exact installation instructions.

OS X

By far the easiest way to install both Git and git-completion is via Homebrew, so you should pick that one.

Homebrew

  1. Install homebrew

  2. Install Git and bash-completion: brew install git && brew install bash-completion (Note: If this install fails with a 404 error, and you already have git installed, just remove the git part of this brew install)

  3. Add bash-completion to your .bash_profile:

    your bash profile is located here: /Users/{{account name}}/.bash_profile

      if [ -f $(brew --prefix)/etc/bash_completion ]; then
        . $(brew --prefix)/etc/bash_completion
      fi
    

MacPorts

If you're using MacPorts, then you will need to install Git with the +bash_completion option

sudo port install git +bash_completion

Add the following to your ~/.bash_profile or ~/.profile

# bash-completion
if [ -f /opt/local/etc/profile.d/bash_completion.sh ]; then
    . /opt/local/etc/profile.d/bash_completion.sh
fi

You need to change the command Terminal.app uses to launch the shell in the preferences.

  1. Menu > Preferences > Startup, "Shells open with:"
  2. Select "Command" and enter /opt/local/bin/bash -l to switch to bash provided by MacPorts.

Ubuntu/Debian

  1. Install Git and bash-completion: sudo apt-get install git bash-completion
  2. I don't think you need to do anything else. (This doesn't appear to work on Ubuntu Studio 16.04. For instance 'git flow ' TAB shows the files under bash.)

Fedora

  1. Install Git and bash-completion: sudo yum install git bash-completion
  2. I don't think you need to do anything else.

Windows

msysgit

  1. Download and place git-flow-completion.bash in home directory (~/ in msysgit shell)
  2. Add a .bashrc file to your home directory with the following line (or add this line to existing .bashrc file):

    source ~/git-flow-completion.bash
    

Note: The steps above have been tested to work with msysgit version 1.7.3.1 and newer, while completion does not function when tested with msysgit version 1.7.0.2. For best results, install the latest version of msysgit.

Cygwin

  1. Download and place git-flow-completion.bash in %CYGWIN_INSTALLATION_DIR%\etc\bash_completion.d
  2. Rename it to git-flow

Now you can autocomplete as following: git flow init etc.