'git' Branch Displayed by 'bash' Prompt

It is easily possible to let e.g. the bash command line prompt display the name of the current branch, if the working directory is a git repo.

For example, if my-project is a git repo and I'm just working on the my-cool-feature branch, the command prompt may look like:

martin@pc-martin  ~/projects/my-project (my-cool-feature)

The following lines can be used to set the command line prompt accordingly:

# Configure a bash prompt that shows the branch name
# if the directory is part of a git repo.
# Stolen from the 'git for Windows' package.
export PS1='\[\033]0;$TITLEPREFIX:$PWD\007\]\n\[\033[32m\]\u@\h \[\033[35m\]$MSYSTEM \[\033[33m\]\w\[\033[36m\]`__git_ps1`\[\033[0m\]\n$ '

These lines can be added to a bash configuration file, e.g.

  • If a /etc/bashrc.d/ directory exists, just create a file with the command in that directory.
  • Create a file /etc/bash.bashrc.local, and then:
    • On openSUSE systems, the file will be automatically included from /etc/bash.bashrc, if it exists.
    • On Debian systems, /etc/bash.bashrc.local is not automatically included, so a workaround is required. See below.
  • Any other configuration file that is supported by the Linux distro and read when bash starts.

Putting a file into the /etc/profile.d/ directory may not work, especially on Debian/Ubuntu, because apparently the files in that directory are read too early, and the shell prompt is set later, and overriding the shell prompt discussed here.

A workaround for Debian/Ubuntu-based systems is to edit the file /etc/bash.bashrc and add the line

test -s /etc/bash.bashrc.local && . /etc/bash.bashrc.local

at the bottom of that file.

The function __git_ps1, which actually does the work, is part of the git-completion files that are usually included in the git core software distribution, and installed e.g. as /etc/bash_completion.d/git-prompt.sh.

So the files and thus the __git_ps1 function should be available on every system that has a current version of the git software package installed.

See also:

Martin Burnicki martin.burnicki@burnicki.net, last updated 2022-05-11

  • miscellaneous_tips/20_software_development/git_notes/git_branch_displayed_by_bash_prompt.txt
  • Zuletzt geändert: 2022-05-11 15:46
  • von martin