mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2025-12-26 02:12:33 +01:00
Adding port of __git_ps1 function that comes with git's bash_completion.
This commit is contained in:
parent
dc12853b0c
commit
79305256b9
2 changed files with 54 additions and 1 deletions
|
|
@ -26,6 +26,59 @@ function current_branch() {
|
|||
echo ${ref#refs/heads/}
|
||||
}
|
||||
|
||||
# __git_ps1 accepts 0 or 1 arguments (i.e., format string)
|
||||
# returns text to add to bash PS1 prompt (includes branch name)
|
||||
function __git_ps1 () {
|
||||
local g="$(git rev-parse --git-dir 2>/dev/null)"
|
||||
if [ -n "$g" ]; then
|
||||
local r
|
||||
local b
|
||||
if [ -d "$g/rebase-apply" ]
|
||||
then
|
||||
if test -f "$g/rebase-apply/rebasing"
|
||||
then
|
||||
r="|REBASE"
|
||||
elif test -f "$g/rebase-apply/applying"
|
||||
then
|
||||
r="|AM"
|
||||
else
|
||||
r="|AM/REBASE"
|
||||
fi
|
||||
b="$(git symbolic-ref HEAD 2>/dev/null)"
|
||||
elif [ -f "$g/rebase-merge/interactive" ]
|
||||
then
|
||||
r="|REBASE-i"
|
||||
b="$(cat "$g/rebase-merge/head-name")"
|
||||
elif [ -d "$g/rebase-merge" ]
|
||||
then
|
||||
r="|REBASE-m"
|
||||
b="$(cat "$g/rebase-merge/head-name")"
|
||||
elif [ -f "$g/MERGE_HEAD" ]
|
||||
then
|
||||
r="|MERGING"
|
||||
b="$(git symbolic-ref HEAD 2>/dev/null)"
|
||||
else
|
||||
if [ -f "$g/BISECT_LOG" ]
|
||||
then
|
||||
r="|BISECTING"
|
||||
fi
|
||||
if ! b="$(git symbolic-ref HEAD 2>/dev/null)"
|
||||
then
|
||||
if ! b="$(git describe --exact-match HEAD 2>/dev/null)"
|
||||
then
|
||||
b="$(cut -c1-7 "$g/HEAD")..."
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -n "${1-}" ]; then
|
||||
printf "$1" "${b##refs/heads/}$r"
|
||||
else
|
||||
printf " (%s)" "${b##refs/heads/}$r"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# these aliases take advangate of the previous function
|
||||
alias ggpull='git pull origin $(current_branch)'
|
||||
alias ggpush='git push origin $(current_branch)'
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue