mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2024-11-18 03:40:08 +00:00
feat(lib): show upstream branch in git_prompt_info
(#9188)
Show the remote branch the local branch is tracking if `ZSH_THEME_GIT_SHOW_UPSTREAM` is set, like so: `ZSH_THEME_GIT_SHOW_UPSTREAM=1`. Co-authored-by: Marc Cornellà <marc.cornella@live.com>
This commit is contained in:
parent
79d0182a26
commit
2f39c68ab0
1 changed files with 19 additions and 6 deletions
25
lib/git.zsh
25
lib/git.zsh
|
@ -9,14 +9,27 @@ function __git_prompt_git() {
|
||||||
GIT_OPTIONAL_LOCKS=0 command git "$@"
|
GIT_OPTIONAL_LOCKS=0 command git "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Outputs current branch info in prompt format
|
|
||||||
function git_prompt_info() {
|
function git_prompt_info() {
|
||||||
local ref
|
# If we are on a folder not tracked by git, get out.
|
||||||
if [[ "$(__git_prompt_git config --get oh-my-zsh.hide-status 2>/dev/null)" != "1" ]]; then
|
# Otherwise, check for hide-info at global and local repository level
|
||||||
ref=$(__git_prompt_git symbolic-ref HEAD 2> /dev/null) || \
|
if ! __git_prompt_git rev-parse --git-dir &> /dev/null \
|
||||||
ref=$(__git_prompt_git rev-parse --short HEAD 2> /dev/null) || return 0
|
|| [[ "$(__git_prompt_git config --get oh-my-zsh.hide-info 2>/dev/null)" == 1 ]]; then
|
||||||
echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_SUFFIX"
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
local ref
|
||||||
|
ref=$(__git_prompt_git symbolic-ref --short HEAD 2> /dev/null) \
|
||||||
|
|| ref=$(__git_prompt_git rev-parse --short HEAD 2> /dev/null) \
|
||||||
|
|| return 0
|
||||||
|
|
||||||
|
# Use global ZSH_THEME_GIT_SHOW_UPSTREAM=1 for including upstream remote info
|
||||||
|
local upstream
|
||||||
|
if (( ${+ZSH_THEME_GIT_SHOW_UPSTREAM} )); then
|
||||||
|
upstream=$(__git_prompt_git rev-parse --abbrev-ref --symbolic-full-name "@{upstream}" 2>/dev/null) \
|
||||||
|
&& upstream=" -> ${upstream}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "${ZSH_THEME_GIT_PROMPT_PREFIX}${ref}${upstream}$(parse_git_dirty)${ZSH_THEME_GIT_PROMPT_SUFFIX}"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Checks if working tree is dirty
|
# Checks if working tree is dirty
|
||||||
|
|
Loading…
Reference in a new issue