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"
  • \t: 显示 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)}\[\033[01;32m\]->\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\e[32m$(git-branch-prompt)\e[0m\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}->:\w\$ '
fi
posted @ 2019-12-13 14:22  Cristiano-Duan  阅读(1915)  评论(0编辑  收藏  举报