在 Shell 提示符中显示 Git 分支名称的方法

来源:互联网 发布:linux 修改时间 编辑:程序博客网 时间:2024/06/05 08:10

PS1介绍

PS1介绍

配置

获取branch名称

通过git branch获取(不推荐)

git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'

通过.git/HEAD 获取(推荐)

vi .git/HEAD############ef: refs/heads/dev############

配置.bashrc

vim ~/.bashrc#######################获取branch名称find_git_branch () {    local dir=. head    until [ "$dir" -ef / ]; do        if [ -f "$dir/.git/HEAD" ]; then            head=$(< "$dir/.git/HEAD")                if [[ $head = ref:\ refs/heads/* ]]; then                    git_branch="${head#*/*/}"                elif [[ $head != '' ]]; then                    git_branch="detached"                else                    git_branch="unknow"                fi                git_name_left="git:("                git_name_right=")"                return            fi        dir="../$dir"    done    git_branch=''    git_name_left=""    git_name_right=""}#将这个函数加入到 PROMPT_COMMAND 中,保证 Bash 在创建 prompt 之前调用这个函数取得分支名称:PROMPT_COMMAND="find_git_branch; $PROMPT_COMMAND"#颜色配置black=$'\[\e[1;30m\]'red=$'\[\e[1;31m\]'green=$'\[\e[1;32m\]'yellow=$'\[\e[1;33m\]'blue=$'\[\e[1;34m\]'magenta=$'\[\e[1;35m\]'cyan=$'\[\e[1;36m\]'white=$'\[\e[1;37m\]'normal=$'\[\e[m\]'#配置PS1PS1="$green$cyan\W$blue \$git_name_left$red\$git_branch$blue\$git_name_right\$ $normal"####################source ~/.bashrc

Git仓库效果:
在 Shell 提示符中显示 Git 分支名称的方法

非Git仓库效果
这里写图片描述

原创粉丝点击