1

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

有没有办法让提示变得动态,总是重新评估它的当前位置和格式,以遵循以下规则:

1. 在包含gitrepo 的目录中时,它会更改为包含我所在的分支

19:42:07 (dev) ~ $ 

19:42:07 (release) ~ $ 

1.1 分支是否可以与提示的其余部分以不同的颜色显示?

2.在包含gitrepo的目录之外时,它保持原样

19:42:07 ~ $ 
4

2 回答 2

2

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

于 2012-08-02T00:49:18.217 回答
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\] '

这导致

在此处输入图像描述

我所在ParVal的分支机构的名称在哪里。

于 2012-08-02T04:30:08.373 回答