在 Ubuntu 中显示 Git 分支,可以通过以下命令来查看当前仓库所在的分支:

  1. 显示当前分支
git branch

这个命令会列出所有本地分支,当前分支会有一个 * 标记。
2. 显示所有远程和本地分支

git branch -a

这个命令会列出所有本地和远程的分支。

  1. 显示当前分支的详细信息
git status

这个命令会显示当前分支的状态,包括未提交的更改,以及当前分支的名字。

提示:

如果你想在命令行提示符中动态显示当前 Git 分支,你可以修改你的终端提示符。比如,编辑 .bashrc.zshrc 文件,添加 Git 分支信息:

对于 Bash:

~/.bashrc 文件中添加如下内容:

# Git branch in prompt with colors
parse_git_branch() {
    branch=$(git branch 2>/dev/null | grep -e '^*' | sed 's/^* //')

    # 如果当前目录不是 Git 仓库,branch 可能为空
    if [[ -z "$branch" ]]; then
        # 如果没有分支,什么也不显示
        echo -n ""
    else
        # 设置颜色,根据分支名选择不同的颜色
        if [[ "$branch" == dev-* ]]; then
            # dev- 开头的分支使用蓝色
            echo -e "\033[0;34m[$branch]\033[0m"
        elif [[ "$branch" == "master" ]]; then
            # master 分支使用绿色
            echo -e "\033[0;32m[$branch]\033[0m"
        else
            # 其他分支使用黄色
            echo -e "\033[0;33m[$branch]\033[0m"
        fi
    fi
}

# 设置颜色(不需要额外的 \[ 和 \])
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
RESET='\033[0m'

# 修改 PS1 显示格式,包括 Git 分支颜色
export PS1="${GREEN}\u@\h${RESET} ${YELLOW}\w${RESET} \$(parse_git_branch) \$ "

解释:

  1. if [[ -z "$branch" ]]:这个条件检查 branch 是否为空,如果是空的,则不会输出任何内容。
  2. echo -n "":当 branch 为空时,parse_git_branch 会输出一个空字符串,避免显示 []
  3. 其他逻辑:当 branch 不为空时,按照之前的逻辑,继续显示 [] 和对应颜色。

结果:

  • 如果当前目录在 Git 仓库中并且有一个有效的分支,它将显示类似 [dev-aries][master] 的颜色。
  • 如果当前目录不是 Git 仓库或没有分支,什么都不会显示,不会出现空的 []

保存文件并重新加载配置:

source ~/.bashrc

显示效果如下图:
图1

验证:

  1. 在 Git 仓库中运行 git status,然后你应该看到类似 [develop][master] 的输出,取决于你当前的分支。
  2. 在非 Git 仓库目录中,提示符中将不会显示 [],保持干净。