Skip to content

Install Bash git completion

mskoryh edited this page Aug 12, 2023 · 51 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 / macOS

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 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:

    [[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && . "/usr/local/etc/profile.d/bash_completion.sh"
    

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.

Linux

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.

Arch Linux

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

Gentoo Linux

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

FreeBSD

  1. Install Git and bash-completion: pkg install git bash-completion
  2. Add to your .bashrc:
[[ $PS1 && -f /usr/local/share/bash-completion/bash_completion.sh ]] && \
	source /usr/local/share/bash-completion/bash_completion.sh

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.