如果适用,如何修改shell以显示git分支

时间:2012-08-02 00:45:03

标签: git shell

现在,我的shell设置为显示export PS1="\t \w $ "

是否有任何方式使动态提示,总是重新评估它的当前位置和格式为以下规则:

1。在包含git repo的内部目录中,它会更改为包括我在

的分支
19:42:07 (dev) ~ $ 

19:42:07 (release) ~ $ 

1.1分支是否可以显示不同的颜色,然后是其他提示?

2。当在包含git repo的目录之外时,它保持原样

19:42:07 ~ $ 

2 个答案:

答案 0 :(得分:2)

Git发行版包含一个contrib/completion/git-completion.bash文件来执行此操作,此外还有更多。该文件本身包含安装说明。

答案 1 :(得分:0)

如果git-completion.bash解决方案不可行(例如:没有安装git-completion的权限等),您可以手动将以下函数添加到.bashrc,

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

并从命令调用该函数以格式化PS1。我使用以下内容:

PS1='\[\e]0;\w\a\]\n\[\e[32m\]\u@\h: \[\e[33m\]\w\[\e[37m\]$(parse_git_branch)\[\e[32m\] \$\[\e[0m\] '

导致

enter image description here

其中ParVal是我所在的分支的名称。