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

如果适用,如何修改shell以显示git分支1所在,git,shell,Git,Shell,现在,我的shell设置为显示export PS1=“\t\w$” 是否有任何方法使提示动态化,始终按照以下规则重新评估其当前位置和格式: 1。当在包含gitrepo的目录中时,它会更改为包含我所在的分支机构 19:42:07 (dev) ~ $ 19:42:07 (release) ~ $ 1.1分支是否可以用不同的颜色显示,然后显示提示符的其余部分? 2。当位于包含gitrepo的目录之外时,它保持原样 19:42:07 ~ $ Git发行版包含一个contrib/complet

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

是否有任何方法使提示动态化,始终按照以下规则重新评估其当前位置和格式:

1。当在包含
git
repo的目录中时,它会更改为包含我所在的分支机构

19:42:07 (dev) ~ $ 

19:42:07 (release) ~ $ 
1.1分支是否可以用不同的颜色显示,然后显示提示符的其余部分?

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

19:42:07 ~ $ 

Git发行版包含一个
contrib/completion/Git completion.bash
文件,该文件可以执行此操作,此外还有很多其他功能。文件本身包含安装说明。

如果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\] '
导致

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