Skip to content

Instantly share code, notes, and snippets.

@reinvanoyen
Last active November 15, 2024 23:15
Show Gist options
  • Save reinvanoyen/05bcfe95ca9cb5041a4eafd29309ff29 to your computer and use it in GitHub Desktop.
Save reinvanoyen/05bcfe95ca9cb5041a4eafd29309ff29 to your computer and use it in GitHub Desktop.
Add Git Branch Name to Terminal Prompt (MacOS zsh)

Add Git Branch Name to Terminal Prompt (zsh)

Updated for MacOS with zsh

  • Catalina
  • Big Sur
  • Monterey
  • Ventura
  • Sonoma

screenshot

Install

Open ~/.zshrc in your favorite editor and add the following content to the bottom.

function parse_git_branch() {
    git branch 2> /dev/null | sed -n -e 's/^\* \(.*\)/[\1]/p'
}

COLOR_DEF=$'%f'
COLOR_USR=$'%F{243}'
COLOR_DIR=$'%F{197}'
COLOR_GIT=$'%F{39}'
setopt PROMPT_SUBST
export PROMPT='${COLOR_USR}%n ${COLOR_DIR}%~ ${COLOR_GIT}$(parse_git_branch)${COLOR_DEF} $ '

Reload and apply adjustments

To reload and apply adjustments to the formatting use source ~/.zshrc in the zsh shell.

Credits

@silviomedice
Copy link

Thanks :)

@amalsalimz
Copy link

finally!! thanks

@chunshao90
Copy link

Thank you!!!

@jake-betplusev
Copy link

this is awesome :)

@Dayglor
Copy link

Dayglor commented May 23, 2023

Nice! Thank you!

@saintmalik
Copy link

thanks

@giedriusksd
Copy link

Thanks

@cmiller96
Copy link

Thank you!

@nicholaide
Copy link

Thank you

@daCFniel
Copy link

It's perfect, thank you :)

@symplytheo
Copy link

Gracias

@Ramizdo
Copy link

Ramizdo commented Oct 6, 2023

Funciona, gracias..

@vnguyen13
Copy link

Works wonderfully. Thank you!!

@devih-21
Copy link

helpful, thanks bro

@vasu2912
Copy link

Looks Clean !!!

@csarrvas
Copy link

Thanks!! 👍

@pychap
Copy link

pychap commented Dec 21, 2023

Thank you!

@z-coder-hub
Copy link

Thank you!

@emcfarlane
Copy link

Thank you!

@gideonokyere
Copy link

Thanks

@TrevorPawlewicz
Copy link

This is exactly what I was looking for... thank you!

@beitomartinez
Copy link

Simple and exactly what I was looking for... thanks!! 💯

@laptopmutia
Copy link

laptopmutia commented Mar 26, 2024

but it adds unneccesary space when I opening the non git folder, could we do something about that?

the syntax to get the branch also could be simpler we could do this now

git branch --show-current

@luisf-av1
Copy link

It works great, thanks!

@jftuga
Copy link

jftuga commented Jun 14, 2024

I have a two line prompt:

  • line 1: current directory [git branch]
  • line 2: HH:MM:SS $
function parse_git_branch() {
    git branch 2> /dev/null | sed -n -e 's/^\* \(.*\)/[\1]/p'
}
COLOR_DEF=$'%f'
COLOR_DATE=$'%F{243}'
COLOR_DIR=$'%F{197}'
COLOR_GIT=$'%F{39}'
setopt PROMPT_SUBST
PROMPT_CWD='${COLOR_DIR}%~ ${COLOR_GIT}$(parse_git_branch)${COLOR_DEF}'
export NEWLINE=$'\n'
export PROMPT="${NEWLINE}${PROMPT_CWD}${NEWLINE}${COLOR_DATE}%D{%H:%M:%S}${COLOR_DEF} $ "

I don't need USER, so I changed COLOR_USER to COLOR_DATE.

Here is what it looks like, with the directory name in red, the branch in blue, and the date in faded gray:

~/go/src/github.com/jftuga/dtdiff [dev]
17:35:28 $ 

What I like about having the time:

  • If I meant to time something, but forgot to, I have a built-in timer of sorts
  • I can easily scroll back to see how long ago I ran a command

@butachi
Copy link

butachi commented Jul 16, 2024

thanks!

@NidorPL
Copy link

NidorPL commented Aug 21, 2024

Amazing, thanks !

@Anti-Reverb
Copy link

Thank you.

@cowley05
Copy link

This is great thanks!

Is there a way to make it change as i move directories/branches?
Scenario 1
I am on branch main the prompt shows my branch as main i switch to branch feature-X the prompt still shows I am on branch main

Scenario 2
Lets say I have 2 repositories repository A and repository B If I am on branch main in repository A and then run cd ../repository B and I am on feature-branch-X in that repository, then the prompt still shows I am on main which is not true. Is there a way to change this?

IDK if this is an issue that just I'm having or if its something I'm doing wrong etc.

@alysedunn
Copy link

Looks great. Thanks!

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