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

@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