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

本文介绍如何在Bash环境中通过配置.bashrc文件来实现自动显示当前所在Git仓库的分支名称,并提供了详细的步骤及代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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\]'

#配置PS1
PS1="$green$cyan\W$blue \$git_name_left$red\$git_branch$blue\$git_name_right\$ $normal"
####################

source ~/.bashrc

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值