首页 > 解决方案 > 将 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)") 正在返回当前文件夹和分支,并在不在存储库中时返回当前目录。

是否可以让它在存储库中仅显示当前分支,而当我不在一个存储库中时,什么也不显示?

标签: bashgit

解决方案


我发现 \W 正在插入当前目录,该目录在源代码或人们谈论实现的任何地方都没有评论。我已将其修复为:

PS1='${debian_chroot:+($debian_chroot)}\[\033[32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00;31m\]$(__git_ps1 " (%s)")\[\033[00m\]\$ '

推荐阅读