macOS(Big Sur)命令行终端显示git分支

传统解决方案

关于在命令行显示git分支,我找到了网上很多文章,都类似,比如下面这篇:
《mac终端使用git命令行显示分支信息》
就是修改.bashrc脚本添加如下代码就可以了,我之前在linux平台基本就是这么干的。

function git_branch {
    
    
   branch="`git branch 2>/dev/null | grep "^\*" | sed -e "s/^\*\ //"`"
   if [ "${branch}" != "" ];then
       if [ "${branch}" = "(no branch)" ];then
           branch="(`git rev-parse --short HEAD`...)"
       fi
       echo " ($branch)"
   fi
}
export PS1='\u@\h \[\033[01;36m\]\W\[\033[01;32m\]$(git_branch)\[\033[00m\] \$ '

git官方解决方案

但是macOS升级到Big Sur后默认的脚本解释器从bash改为了zsh,上面的办法就不灵了。
google找到下面这个StackOverflow上的帖子给出了解决方案:

《Show git branch and status in Mac Bash》

这算是git官方提供的解决方案:
首先下载下面这个git官方仓库的脚本到本地,比如命名为~/.git-prompt.sh

https://github.com/git/git/blob/master/contrib/completion/git-prompt.sh

基于zsh

然后打开$HOME下的.zshrc,如果~/.zshrc不存在,就先执行下面的命令创建它

touch ~/.zshrc

然后在~/.zshrc中添加下面的代码:

GIT_PS1_SHOWUPSTREAM="auto"
GIT_PS1_SHOWCOLORHINTS="yes"
source ~/.git-prompt.sh
setopt PROMPT_SUBST
PS1='[%n@%m %c$(__git_ps1 " (%s)")]\$ '

保存~/.zshrc文件后重新执行就可以看到效果了

source ~/.bashrc

在这里插入图片描述

基于bash

如果你的MacOS改用了bash做默认脚本解释器,基于.git-prompt.sh的方式也是可以用的,只是要修改~/.bashrc(注意不是~/.zshrc哦),添加下面的代码:

GIT_PS1_SHOWUPSTREAM="auto"
GIT_PS1_SHOWCOLORHINTS="yes"
source ~/.git-prompt.sh
PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ '

关于这部分更详细的说明参见.git-prompt.sh脚本最前面的用法说明。

brew 提供的解决方案

第三方软件vcprompt提供了Git (and Hg, Bazaar and SVN)等版本控制工具的命令行提示支持
可以通过homebrew安装,如下:

brew install vcprompt

这个倒是非常简单,但因为我已经用前面的方案实现了需要,这个方案我没有试过

参考资料

《Show git branch and status in Mac Bash》

https://github.com/git/git/blob/master/contrib/completion/git-prompt.sh

おすすめ

転載: blog.csdn.net/10km/article/details/115586780