mac bash上显示git分支与状态

Posted yiyi17

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mac bash上显示git分支与状态相关的知识,希望对你有一定的参考价值。

 

主要实现

  • 显示当前路径
  • 显示当前所在分支
  • 显示当前修改状态
    • = 表示一个干净的分支
    • ~ 表示文件有改动
    • # 表示已commit 但未 push

 技术图片

通过网上搜索和自己根据实际需要修改的代码如下:

.bash_profile

function parse_git_dirty 
    local git_status=$(git status 2> /dev/null | tail -n1) || $(git status 2> /dev/null | head -n 2 | tail -n1);
    local git_now;
    if [[ "$git_status" != "" ]]; then
        #local git_now; # 标示
	#echo "$git_status"
        if [[ "$git_status" =~ nothing\\ to\\ commit || "$git_status" =~  Your\\ branch\\ is\\ up\\-to\\-date\\ with ]]; then
            git_now="=";
        elif [[ "$git_status" =~ no\\ changes\\ added\\ to\\ commit ]]; then
            git_now=‘~‘;
       # elif [[ "$git_status" =~ Changes\\ to\\ be\\ committed ]]; then #Changes to be committed
        #    git_now=‘*‘;
       # elif [[ "$git_status" =~ Untracked\\ files ]]; then
        #    git_now="+";
       # elif [[ "$git_status" =~ Your\\ branch\\ is\\ up\\-to\\-date\\ with ]]; then
        #    git_now="#";
        fi
       # echo "$git_now";
    elif [[ "$git_status" = "" ]]; then
	git_now="#";
    fi
   echo "$git_now"



function git_branch 
    ref=$(git symbolic-ref HEAD 2> /dev/null) || return;
    echo "("$ref#refs/heads/") ";



PS1="[\\[\\033[1;32m\\]\\w\\[\\033[0m\\]] \\[\\033[0m\\]\\[\\033[1;36m\\]\\$(git_branch)\\[\\033[0;31m\\]\\$(parse_git_dirty)\\[\\033[0m\\]$ "

  

 

以上是关于mac bash上显示git分支与状态的主要内容,如果未能解决你的问题,请参考以下文章

Git Bash 提示 - 当前分支名称在 Git 命令后停止显示

定制性感Bash提示-Git分支/状态

如何让 git bash 在子模块中显示分支名称

Ubuntu16.04显示git分支状态

Git Bash - Git 将分支显示为最新的,而实际上它们不是最新的

Mac系统的终端显示git当前分支