git - 在 shell 提示符下显示 git 分支?

标签 git branch prompt osx-lion bash

我正在尝试让我的 shell 提示符显示当前的 git 分支名称。

我已经阅读了一些教程和博客文章等,据我所知,我所做的一切都是正确的,但似乎没有用。

我希望提示看起来像这样:

dannys-macbook:hillcrest-store [master]$

但目前它看起来像这样:

dannys-macbook:hillcrest-store danny$ 

我已将以下内容添加到 ~/.bash_profile:

PATH=$PATH:/usr/local/bin; export PATH

COLOR1="\[\e[1;32m\]"
COLOR2='\[\e[1;1m\]'
COLOR3='\[\e[m\]'
GIT_STATUS=$(__git_ps1 " %s")
PROMPT_CHAR="$"

PROMPT="${COLOR1}\u@\h${COLOR3} \w${COLOR2}${GIT_STATUS} ${COLOR2}${PROMPT_CHAR$
PS1="$PROMPT"
export PS1

我不确定我做错了什么,也许我应该以某种方式“重置”提示?

最佳答案

更简单的解决方案:引用 GIT_STATUS 这样它就不会在 bash 启动时进行评估,而是在 bash 显示提示时进行评估:

COLOR1='\[\e[1;32m\]'
COLOR2='\[\e[1;1m\]'
COLOR3='\[\e[m\]'
GIT_STATUS='$(__git_ps1 " %s")'
PROMPT_CHAR='\$'
PS1="${COLOR1}\u@\h${COLOR3} \w${COLOR2}${GIT_STATUS} ${COLOR2}${PROMPT_CHAR}"

另请注意,导出 PS1 不是一个好主意。

关于git - 在 shell 提示符下显示 git 分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7295011/

相关文章:

Git:在 checkout 新分支之前没有提交分支

git - git checkout master + git reset --hard 会做什么?

git - 我可以在 Git 中删除分支后恢复它吗?

javascript - 有没有办法让JS提示返回一个数字?

c# - 在提示框内添加标签

Git推送不从 repo 中删除文件

git - 如何将您的更改推送到 Github 上的 fork repo ?

Python 子进程 git 提交消息只接受单个字符串

git - 不使用 git branch -r 显示所有远程分支

linux - zsh + 电力线 : prompt disappears with long command line