Git 终端提示配置
在日常开发工作中,经常使用git flow工作流,因此会经常涉及到分支间的切换、合并等高频操作,官方提供了一个git终端提示配置脚本,可以在终端中显示当前所在的分支信息,极大提升工作效率
提示
本文档记录适用于 Linux 平台 + Bash 终端的配置
下载 git-prompt.sh 脚本
从 Git 官方仓库下载 contrib/completion/git-prompt.sh 脚本
wget https://raw.githubusercontent.com/git/git/refs/heads/master/contrib/completion/git-prompt.sh
# 或者
curl -O https://raw.githubusercontent.com/git/git/refs/heads/master/contrib/completion/git-prompt.sh
配置环境变量
git-prompt.sh 脚本通过设置环境变量来 控制显示的信息内容。主要的环境变量包括:
GIT_PS1_SHOWDIRTYSTATE=1:显示工作区是否有未提交的更改(*表示有未暂存的更改,+表示有已暂存的更改)GIT_PS1_SHOWSTASHSTATE=1:显示是否有stash($表示有stash)GIT_PS1_SHOWUNTRACKEDFILES=1:显示是否有未跟踪的文件(%表示有未跟踪文件)GIT_PS1_SHOWUPSTREAM="auto":显示与上游分支的关系(<表示落后,>表示领先,<>表示分叉,=表示同步)
Bash 配置
将下载的脚本移动到合适的位置:
sudo mv git-prompt.sh /etc/bash_completion.d/
# 或者放在用户目录下
mv git-prompt.sh ~/.git-prompt.sh
编辑 ~/.bashrc 文件,添加以下内容:
# Git 终端提示配置
source ~/.git-prompt.sh # 如果放在用户目录下
# 或者
# source /etc/bash_completion.d/git-prompt.sh # 如果放在系统目录下
# 设置环境变量
export GIT_PS1_SHOWDIRTYSTATE=1
export GIT_PS1_SHOWSTASHSTATE=1
export GIT_PS1_SHOWUNTRACKEDFILES=1
export GIT_PS1_SHOWUPSTREAM="auto"
# 修改 PS1 提示符
export PS1='\u@\h:\w$(__git_ps1 " (%s)")\$ '
重新加载配置:
source ~/.bashrc
颜色配置
可以为不同的 Git 状态设置颜色:
# 在 .bashrc 中添加
export GIT_PS1_SHOWCOLORHINTS=1
# 自定义 PS1 with colors
export PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]$(__git_ps1 " \[\033[01;31m\](%s)\[\033[00m\]")\$ '
效果展示
配置完成后,终端提示符将显示如下信息:
配置前:
user@hostname:~/project$
配置后:
user@hostname:~/project (main *)$
user@hostname:~/project (feature/new-feature +)$
user@hostname:~/project (main %<)$
符号含义:
*:工作区有未暂存的更改+:暂存区有已暂存的更改%:有未跟踪的文件$:有 stash<:本地分支落后于远程分支>:本地分支领先于远程分支<>:本地分支与远程分支分叉=:本地分支与远程分支同步