Git Bash 隐藏用户名和计算机名的方法
windows 下解决方法
- 转至
C:\Program Files\Git\etc\profile.d\文件夹 - 找到并打开
git-prompt.sh文件在您最喜欢的文本编辑器中 - 转到行号
15 - 用
PS1="$PS1"''替换整行 - 就是这样。启动/重新启动
Git Bash,您应该会看到用户名和计算机名称消失了。
如图所示

那一行原本是什么
git-prompt.sh 第 15 行前后的原始内容大致是这样:
PS1="$PS1"'\[\033[32m\]' # 绿色
PS1="$PS1"'\u@\h ' # user@host
PS1="$PS1"'\[\033[35m\]' # 品红
PS1="$PS1"'$MSYSTEM ' # MINGW64
PS1="$PS1"'\[\033[33m\]' # 黄色
PS1="$PS1"'\w' # 当前目录
\u 是当前用户名,\h 是主机名(\H 是完整域名)。把那一行换成 PS1="$PS1"'' 就是拼接一个空字符串,等于什么都不加,用户名和主机名自然就没了。
这里选择「替换成空拼接」而不是直接删掉整行,是因为保留行号能让后续对照文档、以及 Git 升级后比对差异更方便。功能上和删掉这一行完全等价。
提示符各段的含义
改之前先看懂这些转义序列,就能按自己需要裁剪:
| 转义 | 含义 |
|---|---|
\u | 当前用户名 |
\h | 主机名(第一个点之前的部分) |
\H | 完整主机名 |
\w | 当前工作目录完整路径(家目录显示为 ~) |
\W | 当前目录的最后一段 |
\n | 换行 |
\$ | root 显示 #,普通用户显示 $ |
\t | 24 小时制时间 |
\[ \] | 包裹非打印字符(颜色码),不能省 |
\[ 和 \] 那对括号最容易被忽略。它们告诉 bash「这段不占显示宽度」,漏了会导致长命令换行时光标位置计算错误,编辑历史命令时光标乱跳。所以自己拼颜色一定要包好。
我常用的精简配置
路径太长时 \w 会占掉半屏,换成 \W 只显示当前目录名清爽很多。加个换行让命令输入区独占一行也很实用:
# 直接在 git-prompt.sh 末尾覆盖 PS1(放最后,覆盖前面的定义)
PS1='\[\033[33m\]\W\[\033[0m\]' # 黄色,只显示当前目录名
PS1="$PS1"'\[\033[36m\]`__git_ps1`\[\033[0m\]' # 青色分支名
PS1="$PS1"'\n\$ ' # 换行 + 提示符
__git_ps1 是 Git 自带的函数,输出当前分支名(形如 (master))。Git Bash 默认已经加载了它,直接用。想让它额外显示工作区状态,在调用前设置这些环境变量:
export GIT_PS1_SHOWDIRTYSTATE=1 # 有未提交改动显示 *,暂存显示 +
export GIT_PS1_SHOWSTASHSTATE=1 # 有 stash 显示 $
export GIT_PS1_SHOWUNTRACKEDFILES=1 # 有未跟踪文件显示 %
export GIT_PS1_SHOWUPSTREAM="auto" # 和上游的领先/落后关系,显示 < > =
GIT_PS1_SHOWUNTRACKEDFILES 在大仓库里会明显拖慢提示符(每次回车都要扫一遍未跟踪文件),仓库大就别开。
改系统文件的问题
直接改 C:\Program Files\Git\etc\profile.d\git-prompt.sh 有三个实际麻烦:
- 需要管理员权限,
Program Files下不能直接写。 - Git 升级会覆盖它,改动丢失,得重新改一遍。
- 只对这台机器生效,换电脑要重做。
更好的做法是改用户级配置,~/.bashrc 在 Git Bash 里对应 C:\Users\<你>\.bashrc。它在系统配置之后加载,所以能覆盖 PS1:
# ~/.bashrc
export GIT_PS1_SHOWDIRTYSTATE=1
PS1='\[\033[33m\]\W\[\033[0m\]'
PS1="$PS1"'\[\033[36m\]`__git_ps1`\[\033[0m\]'
PS1="$PS1"'\n\$ '
Git Bash 默认读的是 ~/.bash_profile,如果 .bashrc 没生效,在 .bash_profile 里加一句引入:
# ~/.bash_profile
[ -f ~/.bashrc ] && . ~/.bashrc
这样配的好处是文件在用户目录下,可以纳入 dotfiles 版本管理,换机器直接拷过去,Git 升级也不受影响。
macOS / Linux 上的等价做法
同样是改 PS1,只是配置文件位置不同。zsh(macOS 现在的默认 shell)用的是 PROMPT 而不是 PS1,转义语法也不一样:
# ~/.zshrc
# %1~ 只显示当前目录,%~ 显示完整路径
PROMPT='%F{yellow}%1~%f %F{cyan}${vcs_info_msg_0_}%f
%# '
# 启用 zsh 自带的版本控制信息
autoload -Uz vcs_info
precmd() { vcs_info }
zstyle ':vcs_info:git:*' formats '(%b)'
setopt PROMPT_SUBST
zsh 里 %F{color} / %f 是颜色开关,%1~ 是路径最后一段,%# 相当于 bash 的 \$。不需要 \[ \] 那套包裹,zsh 自己能正确计算宽度。
为什么会想隐藏
主要是录屏、截图、写文档的时候——Administrator@DESKTOP-A1B2C3 这种前缀既占地方又暴露机器信息。做技术分享时提示符里只留目录和分支,读者的注意力也更集中在命令本身上。
临时隐藏一次不用改配置文件,当前会话里直接设就行:
PS1='\$ '
关掉终端就恢复原样。

还没有留言,来发表第一条吧~