git/list[1] front-page[2] threads[3] people[4] search[5] about
 

git-PS1 bash prompt setting

From
Sean <seanlkml@sympatico.ca>
Date
Nov 16, 2006, 18:01 UTC
Message-ID
<BAYC1-PASMTP037FDA6C6465F0541AC613AEE90@CEZ.ICE>

Ted mentioned in the wart thread that having multiple branches per repo means that the standard bash prompt isn't as much help as it could be.

For what it's worth i'll post a little script i've been using for quite some time that helps a little. It's called git-PS1 and is used by including it in your bash PS1 variable like so:

export PS1='$(git-PS1 "[\u@\h \W]\$ ")'

If you're not in a git repo, the bash prompt you pass on the git-PS1 command line is used instead. If you are in a git repo, you'll get the following as a prompt:

[branch!repo/relative/path]$ 

Where "repo" is the basename of the path to the root of your repo. An example would look like this:

[master!linus-2.6/Documentation/vm]$ 

Cheers, Sean

#!/bin/bash BR=$(git symbolic-ref HEAD 2>/dev/null) || { echo "$@" ; exit ; } BR=${BR#refs/heads/} REL=$(git rev-parse --show-prefix) REL="${REL//%\/}" LOC="${PWD%/$REL}" echo "[$BR!${LOC/*\/}${REL:+/$REL}]$ "

Next: Junio C Hamano
Message 1 of 13 in “git-PS1 bash prompt setting”
  1. SeanNov 16, 2006
  2. Junio C HamanoNov 16, 2006
  3. Johannes SchindelinNov 26, 2006
  4. SeanNov 26, 2006
  5. Johannes SchindelinNov 26, 2006
  6. Nicolas VilzNov 26, 2006
  7. Junio C HamanoNov 27, 2006
  8. Nicolas VilzNov 27, 2006
  9. Shawn PearceNov 27, 2006
  10. Jakub NarebskiNov 27, 2006
  11. SeanNov 27, 2006
  12. Shawn PearceNov 27, 2006
  13. SeanNov 27, 2006

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.