第55.1节:终端中的分支名称

什么是 PS1

PS1 代表提示字符串 1。它是 Linux/UNIX Shell 中的一种提示符。当你打开终端时,它会显示 PS1 变量中定义的内容。为了在 Bash 提示符中添加分支名称,我们需要编辑 PS1 变量(在 ~/.bash_profile 文件中设置 PS1 的值)。

显示 Git 分支名称

将以下代码添加到你的 ~/.bash_profile 文件中:

git_branch() {
    git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
export PS1="\u@\h \[\033[32m\]\w\[\033[33m\]\$(git_branch)\[\033[00m\] $ "

代码解释

定义 git_branch 函数:

git_branch() {
    git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
  • git branch:列出当前分支。
  • 2> /dev/null:将错误信息(如不在 Git 仓库中)重定向到 /dev/null,避免显示错误信息。
  • sed -e '/^[^*]/d':删除所有非当前分支的行。
  • sed -e 's/* \(.*\)/ (\1)/':将当前分支的名称提取出来,并用括号括起来。

设置 PS1 变量:

export PS1="\u@\h \[\033[32m\]\w\[\033[33m\]\$(git_branch)\[\033[00m\] $ "
  • \u:显示当前用户名。
  • \h:显示主机名。
  • \[\033[32m\] 和 \[\033[33m\]:设置颜色(绿色和黄色)。
  • \w:显示当前工作目录。
  • \$(git_branch):调用 git_branch 函数,显示当前分支名称。
  • \[\033[00m\]:重置颜色。
  • $:显示提示符。

使用方法

打开终端。

编辑 ~/.bash_profile 文件,将上述代码添加到文件中:

nano ~/.bash_profile

保存并关闭文件。

使更改生效:

source ~/.bash_profile

现在,当你在终端中导航到 Git 仓库时,会看到分支名称显示在提示符中,例如:

用户名@主机名 /home/用户名/项目 (main) $