Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用git_ps1_ShowColorHits为git_ps1定制颜色 我试过的_Git_Shell_Command Prompt - Fatal编程技术网

使用git_ps1_ShowColorHits为git_ps1定制颜色 我试过的

使用git_ps1_ShowColorHits为git_ps1定制颜色 我试过的,git,shell,command-prompt,Git,Shell,Command Prompt,我已使用\uuu git\u ps1更新了提示以包含分支名称。此外,我还设置了GIT\u PS1\u showcolorHits 问题 提示正确显示。但是,分支颜色始终为绿色。我以为一根脏树枝是红色的 文件规定: 颜色基于“git status-sb”的彩色输出 我找到并审阅了,但我不确定需要更改哪些选项 问题 是否可以将干净树枝的颜色更改为绿色,脏树枝的颜色更改为红色?如果是,如何?脏分支的\uuu git\u ps1显示的颜色不影响分支名称;它们会影响“脏状态指示器”。除启用颜色外,如果启用

我已使用
\uuu git\u ps1
更新了提示以包含分支名称。此外,我还设置了
GIT\u PS1\u showcolorHits

问题 提示正确显示。但是,分支颜色始终为绿色。我以为一根脏树枝是红色的

文件规定:

颜色基于“git status-sb”的彩色输出

我找到并审阅了,但我不确定需要更改哪些选项

问题
是否可以将干净树枝的颜色更改为绿色,脏树枝的颜色更改为红色?如果是,如何?

脏分支的
\uuu git\u ps1
显示的颜色不影响分支名称;它们会影响“脏状态指示器”。除启用颜色外,如果启用此指示器,您将看到脏分支的红色星号:

old-prompt $ bash --noprofile --norc
bash-4.2$ source /etc/bash_completion.d/git-prompt
bash-4.2$ export GIT_PS1_SHOWCOLORHINTS=1
bash-4.2$ export GIT_PS1_SHOWDIRTYSTATE=1
bash-4.2$ export PROMPT_COMMAND='__git_ps1 "\u@\h:\w" "\\\$ "'
chris@machine:~/path/to/dir (master *)$
如果不修改
git prompt.sh
code,或者不提供自己的功能,就无法根据脏状态更改分支名称的颜色


请注意,这适用于
export-PROMPT_命令
,但不适用于
export-PS1

,我通过:
1.克隆最新的git源代码,以获取并安装最新的
git prompt.sh
(您的发行版可能已经有了最新的脚本)
2.正在删除阻止脚本在输出字符串中插入颜色代码的检查。
3.修改my.bashrc以包含对
\uuu git\u ps1
的调用,并使用一些格式选项来更改我的终端提示文本

提交和文档,包括我所做的特定文件和编辑:

现在,我的控制台有了我想要的所有信息:我可以打开一个终端,并将cd放入任何git repo:
$cd~/Github/git
user@hostname:~/Github/git:(master)$#“master”是绿色的

当我签出一个散列并移动到分离的头状态时:
$git签出bca18110
user@hostname:~/Github/git:(bca1811…$#提交哈希为红色


我需要遵循这个答案:让bash在每个命令之后正确地重新解释颜色代码,但是我的终端完好无损,换行仍然有效,我的提示符按照我想要的方式着色

感谢您的回复,但它们似乎也不会影响脏状态指示器。您是在哪里确定的?通过测试,虽然它似乎只在我设置了
PROMPT\u命令而不是
PS1
时才起作用,我以前没有包括这一点。我已经更新了我的示例。+我的错误。我现在看到它确实在标记脏状态指示器。这不是我想要的答案。但是我可以修改代码。如果使用正确的参数调用
\uuu git\u ps1
,则不需要hack
contrib/completion/git prompt.sh
。请参见我的答案,设置
PROMPT\u COMMAND=''git\u ps1[PRE][POST]'
是一个更干净的解决方案!