Browse Source

feat(git): add `git_previous_branch` function

Closes #12538
Carlo Sala 2 months ago
parent
commit
99e2c31484
1 changed files with 12 additions and 0 deletions
  1. 12 0
      lib/git.zsh

+ 12 - 0
lib/git.zsh

@@ -162,6 +162,18 @@ function git_current_branch() {
   echo ${ref#refs/heads/}
   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
 # Gets the number of commits ahead from remote
 function git_commits_ahead() {
 function git_commits_ahead() {