我在工作中使用 tcsh(不幸的是,我无法改变这个事实)而且我快疯了,因为当我在 git repo 中时,我无法让控制台显示当前分支名称。
我不久前发现了这个:
http://articles.bvsatyaram.com/2010/09/display-git-branch-name-in-console.html
这在 bash 中工作得非常完美,但我没有设法让它在 tcsh 中工作,因为它不是那么相似。
我将不胜感激任何类型的帮助。
我在工作中使用 tcsh(不幸的是,我无法改变这个事实)而且我快疯了,因为当我在 git repo 中时,我无法让控制台显示当前分支名称。
我不久前发现了这个:
http://articles.bvsatyaram.com/2010/09/display-git-branch-name-in-console.html
这在 bash 中工作得非常完美,但我没有设法让它在 tcsh 中工作,因为它不是那么相似。
我将不胜感激任何类型的帮助。
我为我的一位陷入 csh 的朋友提供了以下不太完美的解决方案,我认为它也适用于 tcsh。这只是 bash 版本的编辑。
alias GIT_BRANCH_CMD "sh -c 'git branch --no-color 2> /dev/null' | sed -e '/^[^*]/d' -e 's/* \(.*\)/\(\1)/'"
alias cd 'chdir \!*;set prompt="%{\033[32;40m%}"`whoami`@`hostname`": %{\033[33;40m%}%~%{\033[37;40m%}"`GIT_BRANCH_CMD`"%{\033[32;40m%} >%{\033[0m%} "'
cd ~
将此添加到 .cshrc 中,当您移动到新目录时,它将在括号内显示分支。我认为当您在目录中更改分支时,这将不起作用。我记得他为此使用了其他一些解决方法,例如将点 (.) 别名化以将目录向下和向上更改,因此它将刷新分支。
alias GIT_BRANCH_CMD "sh -c 'git branch --no-color 2> /dev/null' | sed -e '/^[^*]/d' -e 's/* \(.*\)/\(\1)/'"
alias cd 'chdir \!*;set prompt="%B%n%b@%B%m: %~/%{\033[32;40m%}"`GIT_BRANCH_CMD`"%{\033[0m%}>"'
alias co 'eval "git checkout \!*;cd .;"'
现在,使用 co 结帐分支,它会自动刷新分支名称
你可以试试:
alias __git_current_branch 'git rev-parse --abbrev-ref HEAD >& /dev/null && echo "{`git rev-parse --abbrev-ref HEAD`}"'
alias precmd 'set prompt="%n@%m[%c2]`__git_current_branch` "'