bash - 将 git 分支添加到 bash 提示符
问题描述
我正在尝试将我当前的 git 分支添加到我的 bash 终端提示符中。我已将此文件:https ://github.com/git/git/blob/master/contrib/completion/git-prompt.sh 复制到我的主目录,这是与我的提示相关的 .bashrc 的一部分:
source ~/.git-prompt.sh
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00;31m\] \W$(__git_ps1 " (%s)")\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\ \W$(__git_ps1 " (%s)")$ '
fi
但是, \W$(__git_ps1 " (%s)") 正在返回当前文件夹和分支,并在不在存储库中时返回当前目录。
是否可以让它在存储库中仅显示当前分支,而当我不在一个存储库中时,什么也不显示?
解决方案
我发现 \W 正在插入当前目录,该目录在源代码或人们谈论实现的任何地方都没有评论。我已将其修复为:
PS1='${debian_chroot:+($debian_chroot)}\[\033[32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00;31m\]$(__git_ps1 " (%s)")\[\033[00m\]\$ '