我在工作中使用tcsh(不幸的是,我无法改变这个事实)而且我发疯了,因为当我在git repo中时,我无法让控制台显示当前的分支名称。
我刚才发现了这个:
http://articles.bvsatyaram.com/2010/09/display-git-branch-name-in-console.html
并且这在bash中运行得非常完美,但我没有设法让它在tcsh中运行,因为它不是那么相似。
我很感激任何类型的帮助。
答案 0 :(得分:1)
我将以下不那么完美的解决方案提供给了一个卡在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,当您移动到新目录时,它将在括号内显示分支。我认为当你在目录中更改分支时,这将不起作用。我记得他使用了其他一些解决方法,比如使用点(。)别名来改变树中的目录,然后刷新分支。
答案 1 :(得分:0)
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签出分支,它将自动刷新分支名称
答案 2 :(得分:0)
你可以试试:
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` "'