====== '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 ~~codedoc:(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\]`~~codedoc:__git_ps1~~`\[\033[0m\]\n$ '
/*
A download file is available here:
* **{{:miscellaneous_tips:01_windows:network_drive_as_admin.reg|network_drive_as_admin.reg}}**
*/
\\
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:
* **Git in Other Environments - Git in Bash**\\
[[https://git-scm.com/book/uz/v2/Appendix-A%3A-Git-in-Other-Environments-Git-in-Bash]]
----
--- //Martin Burnicki [[martin.burnicki@burnicki.net]], last updated 2022-05-11//