Skip to content

Instantly share code, notes, and snippets.

@ankurk91
Last active October 22, 2023 12:16
Show Gist options
  • Save ankurk91/2efe14650d54d7d09528cea3ed432f6d to your computer and use it in GitHub Desktop.
Save ankurk91/2efe14650d54d7d09528cea3ed432f6d to your computer and use it in GitHub Desktop.
:octocat: Git branch name in Linux/Mac Bash Terminal

Mac OS : Show your git branch name on your bash terminal

⚠️ Does not work in zsh terminal

Add these lines in your ~/.bash_profile file

# Show current git branch name
parse_git_branch() {
     git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
export PS1="\u@\h \[\033[32m\]\w\[\033[33m\]\$(parse_git_branch)\[\033[00m\] $ "

Alternate approach - Don't show full path

# Git branch in prompt.
parse_git_branch() {
    git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
export PS1="\u@\h \W\[\033[32m\]\$(parse_git_branch)\[\033[00m\] $ "
  • Quit and re-open your terminal , cd to a git repo folder

Tested on macOS Sierra/High Sierra/Mojave (default bash terminal)

Source, Source2

Ubuntu: Show your git branch name on your terminal

Add these lines in your ~/.bashrc file

# Show git branch name
force_color_prompt=yes
color_prompt=yes
parse_git_branch() {
 git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
if [ "$color_prompt" = yes ]; then
 PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[01;31m\]$(parse_git_branch)\[\033[00m\]\$ '
else
 PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w$(parse_git_branch)\$ '
fi
unset color_prompt force_color_prompt
  • Close and re-open your gnome-terminal , cd to a git repo folder

Source

Tested on Ubuntu 18.04/20.04/22.04 on gnome terminal

@eduardo-marcolino
Copy link

Works on Xubuntu 18.04 too. Thanks!

@leorocco
Copy link

Thanks!!! :D

@madiou84
Copy link

madiou84 commented Sep 8, 2018

Thanks

@weilinzung
Copy link

Is possible to add the current branch name on all the timestamp lines? Something like this:

FROM:

[18:37:39] Starting 'build-js'...
[18:37:49] finished 'build-js'...

TO:

[18:37:39 - **current-branch-name** ] Starting 'build-js'...
[18:37:49 - **current-branch-name** ] finished 'build-js'...

Thanks.

@ucavalcante
Copy link

tks and this work on Debian too

@lurodrig
Copy link

It works, thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment