当前位置: 首页>>技术教程>>正文


在提示中显示git分支名称在屏幕中不起作用

,

问题描述

我更新了我的.bashrc文件,如下所示:

PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$'

它只能找到,我可以在提示符中看到我的分支名称。但是,当我运行”screen”时,我明白了

“-bash: __git_ps1: command not found”

这可能是什么原因?

最佳解决方案

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) > 

次佳解决方案

我发现修改现有提示而不是定义新提示更清晰。以下代码段将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]重置颜色。需要转义的括号表示插入了”special”字符。

PS1=$PS1'$(__git_ps1 "\[\e[0;32m\](%s) \[\e[0m\]")'

许多其他颜色定义can be found here

第三种解决方案

问题是bash需要作为登录shell运行,以便在默认的cygwin设置中使用此函数。如果你在cygwin bash中运行bash你会遇到同样的问题。要将屏幕设置为在登录模式下运行bash,请将此行添加到〜/.screenrc文件中:

shell -bash

第四种方案

# 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\]正常

第五种方案

.bashrc中加入source ~/.bash_profile

有同样的问题,它只对我有用。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/7065.html,未经允许,请勿转载。