在控制台中显示当前分支名称(tcsh)

时间:2012-12-20 14:10:57

标签: git branch command-prompt tcsh

我在工作中使用tcsh(不幸的是,我无法改变这个事实)而且我发疯了,因为当我在git repo中时,我无法让控制台显示当前的分支名称。

我刚才发现了这个:

http://articles.bvsatyaram.com/2010/09/display-git-branch-name-in-console.html

并且这在bash中运行得非常完美,但我没有设法让它在tcsh中运行,因为它不是那么相似。

我很感激任何类型的帮助。

3 个答案:

答案 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` "'

来源:https://thrysoee.dk/gittcsh/