Parse Git 分支停止工作(OSX)

Parse Git 分支停止工作(OSX)

我使用了一种由 PROMPT 调用的方法parse_git_branch。我正在使用 zshell,但我不明白为什么它会停止工作。

该函数如下:

parse_git_branch() {
    git_status="$(git status 2> /dev/null)"
pattern="^# On branch ([^[:space:]]*)"
    if [[ ! ${git_status} =~ "working directory clean" ]]; then
        state="*"
    fi
    if [[ ${git_status} =~ ${pattern} ]]; then
      branch=${match[1]}
      echo "(${branch}${state})"
    fi
}

下面是 a 的输出git status

On branch master
Your branch is up-to-date with 'origin/master'.

但呼叫却parse_git_branch没有任何回音。

什么可能已经改变?我确实刚刚安装了最新版本的 Xcode。

Git 版本:(git version 1.8.5.2 (Apple Git-48)看起来不太熟悉)

答案1

我建议你使用https://github.com/nojhan/liquidprompt它解决了所有这些问题,并为您的终端提示提供了更多功能和视觉效果。我最近几个月一直在使用它,它非常强大。

答案2

更改此行

pattern="^# On branch ([^[:space:]]*)

pattern="On branch ([^[:space:]]*)"

不确定它们如何与旧的 git 一起工作,但是无论如何......


新版本可与较新的 Git 配合使用(使用树而不是目录)

parse_git_branch() {
    git_status="$(git status 2> /dev/null)"
    pattern="On branch ([^[:space:]]*)"
    if [[ ! ${git_status} =~ "(working (tree|directory) clean)" ]]; then
        state="*"
    fi
    if [[ ${git_status} =~ ${pattern} ]]; then
      branch=${match[1]}
      echo "(${branch}${state})"
    fi
}

相关内容