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

绝地灬酷狼 2022-11-18 01:19 742阅读 0赞

传统解决方案

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

  1. function git_branch {
  2. branch="`git branch 2>/dev/null | grep "^\*" | sed -e "s/^\*\ //"`"
  3. if [ "${branch}" != "" ];then
  4. if [ "${branch}" = "(no branch)" ];then
  5. branch="(`git rev-parse --short HEAD`...)"
  6. fi
  7. echo " ($branch)"
  8. fi
  9. }
  10. 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不存在,就先执行下面的命令创建它

  1. touch ~/.zshrc

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

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

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

  1. source ~/.bashrc

在这里插入图片描述

基于bash

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

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

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

brew 提供的解决方案

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

  1. brew install vcprompt

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

参考资料

《Show git branch and status in Mac Bash》

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

发表评论

表情:
评论列表 (有 0 条评论,742人围观)

还没有评论,来说两句吧...

相关阅读