我更新了我的.bashrc文件,如下所示:
PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$'
它只是查找,我可以在提示符中看到我的分支名称。但是,当我运行" screen" ,我得到
" -bash:__ git_ps1:找不到命令"
这可能是什么原因?
答案 0 :(得分:28)
This blog post说明您必须先添加第source /etc/bash_completion.d/git
行,然后才能使用__git_ps1
。
以下是完整示例:
source /etc/bash_completion.d/git
export PS1='\w$(__git_ps1 "(%s)") > '
这也可以为分支机构自动完成。
使用该格式,您的提示将类似于(不着色):
~/my-repo(master) >
答案 1 :(得分:24)
我发现修改现有提示而不是定义新提示更清晰。以下代码段将git分支名称添加到现有提示符($ PS1)。您可以将以下代码段添加到〜/ .bashrc 文件中:
source /etc/bash_completion.d/git (for Ubuntu 12.04 or less)
source /etc/bash_completion.d/git-prompt (for Ubuntu 13.04 and higher)
PS1=$PS1'$(__git_ps1 "(%s) ")'
如果您想使用颜色的分支名称,您也可以这样做: 例如,绿色定义为[\ e [0; 32m]。我们将它添加到git_ps1函数的内部字符串中,然后使用\ [[0m]重置颜色。需要转义的括号表示插入了“特殊”字符。
PS1=$PS1'$(__git_ps1 "\[\e[0;32m\](%s) \[\e[0m\]")'
许多其他颜色定义can be found here
答案 2 :(得分:8)
问题是bash需要作为登录shell运行,以便在默认的cygwin设置中提供此功能。如果你在cygwin bash中运行bash
,你会遇到同样的问题。要将屏幕设置为在登录模式下运行bash,请将此行添加到〜/ .screenrc文件中:
shell -bash
答案 3 :(得分:7)
# Add following line to /.bashrc to show Git branch name in ssh prompt
PS1='\[\033[0;31m\]\w\[\033[0;33m\]$(__git_ps1)\[\e[0m\]$ '
\[\033[0;31m\]
为红色
\[\033[0;33m\]
为黄色
\[\e[0m\]
是正常的
答案 4 :(得分:3)
在source ~/.bash_profile
中添加.bashrc
。
有同样的问题,它对我有用。
答案 5 :(得分:0)
这是在debian / ubuntu上测试的。
bash-completion
包~/.bashrc
中存在以下行,且未注释掉。if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
. /etc/bash_completion
fi
答案 6 :(得分:0)
如果你没有__git_ps1,你可以使用
git branch --contains HEAD 2>/dev/null
显示与__git_ps1相同的内容。
如果您创建这样的别名:
alias __git_ps1='git branch --contains HEAD 2>/dev/null'
e.g。你用这个命令得到的承诺:
$PS1='[\u@\h \W(`__git_ps1`)]\$'
或
PS1='[\u@\h \W\[\033[36m\](`__git_ps1`)\[\033[0m\]]\$'
如果你喜欢颜色
使用__git_ps1并使用promt的脚本将完美无缺。
答案 7 :(得分:0)
root:~/project# -> root:~/project(dev)#
在您的〜/ .bashrc末尾添加以下代码
force_color_prompt=yes
color_prompt=yes
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[01;31m\]$(parse_git_branch)\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w$(parse_git_branch)\$ '
fi
unset color_prompt force_color_prompt