summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/git.zsh12
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/git.zsh b/lib/git.zsh
index 2ad5afe04..8237af751 100644
--- a/lib/git.zsh
+++ b/lib/git.zsh
@@ -162,6 +162,18 @@ function git_current_branch() {
echo ${ref#refs/heads/}
}
+# Outputs the name of the previously checked out branch
+# Usage example: git pull origin $(git_current_branch)
+# rev-parse --symbolic-full-name @{-1} only prints if it is a branch
+function git_previous_branch() {
+ local ref
+ ref=$(__git_prompt_git rev-parse --quiet --symbolic-full-name @{-1} 2> /dev/null)
+ local ret=$?
+ if [[ $ret != 0 ]] || [[ -z $ref ]]; then
+ return # no git repo or non-branch previous ref
+ fi
+ echo ${ref#refs/heads/}
+}
# Gets the number of commits ahead from remote
function git_commits_ahead() {