zsh - 显示git branch是否有未提交的提交

时间:2013-05-02 14:17:55

标签: git ssh terminal zsh

实际上我使用的是我的zsh主题blinks的略微修改版本。它显示了一个SSH语句,仅用于与本地终端的光学差异。 如果分支中存在未提交的更改,它还会显示分支和小星星。

是否有可能表明有未执行的承诺?也许还有一个小指标。

# https://github.com/blinks zsh theme

function _prompt_char() {
  if $(git rev-parse --is-inside-work-tree >/dev/null 2>&1); then
    echo "%{%F{blue}%}±%{%f%k%b%}"
  else
    echo ' '
  fi
}

case ${SOLARIZED_THEME:-dark} in
    light) bkg=white;;
    *)     bkg=black;;
esac

ZSH_THEME_GIT_PROMPT_PREFIX=" [%{%B%F{blue}%}"
ZSH_THEME_GIT_PROMPT_SUFFIX="%{%f%k%b%K{${bkg}}%B%F{green}%}]"
ZSH_THEME_GIT_PROMPT_DIRTY=" %{%F{red}%}*%{%f%k%b%}"
ZSH_THEME_GIT_PROMPT_CLEAN=""

PROMPT='%{%f%k%b%}

%{%K{black}%B%F{green}%}%n%{%B%F{blue}%}@%{%B%F{cyan}%}%m%{%B%F{green}%} %{%B%F{red}%}!!SSH!! %{%b%F{yellow}%K{black}%}%~%{%B%F{green}%}$(git_prompt_info)%E%{%f%k%b%}
%{%K{black}%}$(_prompt_char)%{%K{black}%} %#%{%f%k%b%} '

RPROMPT='!%{%B%F{cyan}%}%!%{%f%k%b%}'
提前谢谢 denym

4 个答案:

答案 0 :(得分:1)

只需设置ZSH_THEME =" mortalscumbag"在你的〜/ .zshrc ...它支持"未按下"状态...

1 file changed, 1 insertion(+), 1 deletion(-)

(ssh) mdesales@pppdc9prd08i ‹ master ↑ › : ~/.oh-my-zsh

"向上箭头"显示有未提交的提交......

853102c dosdok
(END)

答案 1 :(得分:0)

只需测试this answer中命令的输出。这将导致您的HEAD州对您当地对origin/master的引用输出,这与您在没有对遥控器做某事的情况下的情况一样好,正如道格拉斯在评论中指出的那样 - 想法。

答案 2 :(得分:0)

您应该使用vcs_info模块随附zsh。

有一个非常详细的教程向您展示如何操作:http://arjanvandergaag.nl/blog/customize-zsh-prompt-with-vcs-info.html

正常加载${vcs_info_msg_0_}模块后,您只需要在$ PROMPT变量中加vcs_info,但如果您不喜欢默认模式,则可以自定义提示格式。

BTW,vcs_info,顾名思义,也支持其他VCS,例如: svn,hg,cvs等

答案 3 :(得分:0)

我真的很喜欢明确的答案,所以我只看了Marcello de Sales提供的主题(取决于您的安装,您应该可以在~/.oh-my-zsh/themes/目录中找到您的主题)。

只需使用ZSH_THEME_GIT_PROMPT_AHEAD全局变量。

下面是一个在右侧显示青色箭头的示例:

ZSH_THEME_GIT_PROMPT_AHEAD="%{$fg_no_bold[cyan]%}->"

此外,这里有一个great post,其中详细介绍了如何自定义zsh主题。