Linux bash显示git分支名

注意:图中命令行提示符中的->是为了隐藏较长的用户名和主机名,可以通过~/.bashrc自定义提示符的显示格式。git br和git st是通过~/.gitconfig设置的git别名,git br相当于是git branch。

[alias]
    st = status
    co = checkout
    br = branch
    ci = commit

以Ubuntu系统为例,修改~/.bashrc,在PS1变量之前增加如下代码

function git-branch-name {
  git symbolic-ref --short HEAD 2>/dev/null
}

function git-branch-prompt {
      local branch=`git-branch-name`
      if [ $branch  ]; then
            printf " <%s> " $branch;
      fi
}

 注:代码详细解释见:https://www.jianshu.com/p/82783f76a868

PS1 是 Shell 中的一个特殊变量, 用来表示命令行"提示符", 该变量的可选参数包括:

  • d: 显示日期, 格式为"星期 月 日"
  • h: 显示简写主机名。如默认主机名 "localhost"
  • : 显示 24 小时制时间, 格式为 "HH:MM:SS"
  • T: 显示 12 小时制时间, 格式为 "HH:MM:SS"
  • A: 显示 24 小时制时间, 格式为 "HH:MM"
  • u: 显示当前用户名
  • w: 显示当前所在目录的完整名称
  • W: 显示当前所在目录的最后一个目录
  • #: 执行的第几个命令
  • $: 提示符, 如果是 root 用户会显示提示符为 "#", 如果是普通用户会显示提示符为 $

为了方便,将原来的u@h修改为->,隐藏用户名和主机名。根据个人喜好,可以不做修改,保持默认。

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}[33[01;32m]->[33[00m]:[33[01;34m]w[33[00m]e[32m$(git-branch-prompt)e[0m$ '
else
    PS1='${debian_chroot:+($debian_chroot)}->:w$ '
fi
原文地址:https://www.cnblogs.com/cristiano-duan/p/12034423.html