自定义Git回购的CSH提示

ASK*_*K87 2 git csh prompt

当我在Git存储库中时,我想有一个自定义CSH提示。如果我不在git repo中,我希望提示符看起来像这样

host_name>$ 
Run Code Online (Sandbox Code Playgroud)

但是当我进入Git仓库时,必须变成这样

host_name [GIT REPO ROOT DIR]>$ 
Run Code Online (Sandbox Code Playgroud)

我只想显示Git存储库的根目录(GIT REPO ROOT DIR),以便知道当前所在的存储库。而不是每次都使用“ pwd”。

你们对实现这一目标有任何建议吗?谢谢您的帮助

-阿尼什

Ste*_*ite 5

这是我为tcsh做的方法。将此脚本放在您的路径中的某个位置;称之为cgb:

#!/bin/bash
git branch 2> /dev/null | grep '^*' | awk '{ print $2; }'
Run Code Online (Sandbox Code Playgroud)

在您的.tcshrc中,

alias precmd 'set cgb=`cgb`'
set prompt='...your-prompt-string... (%$cgb) % '
Run Code Online (Sandbox Code Playgroud)

precmd在每个提示之前运行。如果只希望它在更改目录之前运行,请使用别名cwdcmd。我更喜欢precmd,因为它会在进行git checkout时运行。

  • 根据http://stackoverflow.com/questions/1593051/how-to-programmatically-determine-the-current-checked-out-git-branch,我不应该在脚本中使用“ git branch”,因为它是瓷器命令。将“ git branch ...”替换为“ git rev-parse --symbolic-full-name --abbrev-ref HEAD 2> / dev / null”。 (2认同)