tre*_*der 20 windows git bash prompt
我的办公室和家用电脑都有来自同一来源的Git Bash for Windows(Git for Windows,TortoiseGit附带),但Git Bash的提示在两台机器上都有所不同:
/c/path (branch)都是绿色的(这就是我希望它如何),到目前为止,我被告知,这是PS1变量,保存在~/.bashrc文件中.但是,在两台计算机上,此文件都丢失(执行时会notepad ~/.bashrc打开空记事本).
我迷失在这里.如果~/.bashrc不存在,那么从Git Bash"知道"的地方,它应该在绿色提示中显示当前分支?为什么在第二台机器上不会发生同样的情况?
编辑:我也尝试比较c:\Program Files\Git\etc\机器和Git Bash.vbs文件内容的文件夹内容.在两台计算机上都是相同的,所以我更不知道,Git Bash的提示在两台计算机上都有所不同(以及如何解决这个问题).
几个答案(像这样,这个和这个)建议我,我应该寻找.bash_profile和.bash_prompt文件.不幸的是,我的两台计算机上都缺少这两个.
究竟是什么文件决定在Windows 7下?我应该在哪里寻找,以及PS1变量值应该是什么,以便在两台机器上以绿色提示显示当前分支?
Dav*_* W. 24
Windows上的Git几乎总是使用bash shell.所以,Git 并不像Bash那样设置提示.
有两种方法可以在Bash中设置提示.一个是PS1相当灵活的命令,但仅限于一组特定的转义字符序列.不幸的是,Git信息不是那些逃逸序列之一(虽然我怀疑它有一天会到来).您可以使用第二种方法通过设置PROMPT_COMMAND环境变量来设置提示.如果设置了此项,$PROMPT_COMMAND则执行并将其用作提示而不是PS1环境变量.
当您使用BASH安装标准Git时,您在/etc/profile文件下定义了Git提示符.顺便说一句,etc是你安装Git的目录下的目录,%PROGRAMFILES%除非你在安装Git时更改了它.
在/etc/profile我的版本中第156行的脚本下,您会看到PS1正在设置的命令并使用$(__git_ps1)in $PS1作为在提示符中执行外部命令的方法.(我之前没有提及的第三种方式).
这__git_ps1是一个shell函数.您还会注意到以上内容(我的版本中的第154行)/etc/git-completion.bash以及来源/etc/git-prompt.sh.它/etc/git-prompt.sh定义了__git_ps1函数(我的版本中的第273行).你会注意到该__git_ps1函数引入了其中的几个其他函数/etc/git-prompt.sh.
因此,以一种非常Rube Goldberg的方式,Git提示被定义在/etc/profilevia中定义$PS1哪个pulls /etc/git-prompt.sh定义了一个__git_ps1拉入__git_ps1_show_upstream函数和__git_ps1_colorize_gitstring函数的函数.然后,$PS1使用$(...)字符串作为拉入__git_ps1函数的一部分PS1.
您可以定义自己$HOME/.bash_profile的方式来覆盖设置提示以定义自己的提示的方式.而且,当您这样做时,您也可以__git_ps1在自己的提示中使用Bash功能.
或者,你可以简单地决定不接触任何东西,然后慢慢地退回去.毕竟,你可能有实际的工作要做.
| 归档时间: |
|
| 查看次数: |
6781 次 |
| 最近记录: |