我正在尝试在我的项目中使用git。
我想设置终端,使得每当我进入一个包含git项目的目录时,终端都应该指示我当前所在的git分支。
如果有一个git项目,终端只显示分支的名称,例如:
(master) $
否则应显示当前目录路径,即
username@machinename:path/to/directory $
我在这里找到了一个类似的问题的答案,但是我不知道如何修改答案以满足我的需求,因为我不擅长bash脚本编写。非常感谢您的任何建议。
git rev-parse --abbrev-ref HEAD
当目录不是git仓库的一部分时,它将返回分支名称、HEAD(当处于分离状态时)或无内容。如果您只需要此信息,则可以更新您的.bashrc文件。编辑变量PS1,这是bash提示格式。
PS1='(`git rev-parse --abbrev-ref HEAD 2> /dev/null`) \$ '
PS1 ='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
更新为:PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w \(\$git_branch\)\$ '
myzsh
,或者只是一个简单的bash脚本,你可以将其添加到你的bashrc中。
http://martinvalasek.com/blog/current-git-branch-name-in-command-prompt
例子:function parse_git_branch () {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
RED="\[\033[0;31m\]"
YELLOW="\[\033[0;33m\]"
GREEN="\[\033[0;32m\]"
NO_COLOR="\[\033[0m\]"
PS1="$GREEN\u@\h$NO_COLOR:\w$YELLOW\$(parse_git_branch)$NO_COLOR\$ "
~/.bashrc
)中源代码git-prompt.sh
脚本,然后使用%s
参数设置自定义提示符。例如,在ArchLinux中,您可以执行以下操作:[ -r /usr/share/git/completion/git-prompt.sh ] && . /usr/share/git/completion/git-prompt.sh
PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ '