Skip to content

Commit

Permalink
git: better algorithm to decide what's the main branch
Browse files Browse the repository at this point in the history
Fixes #9103

Co-authored-by: Yufan You <ouuansteve@gmail.com>
  • Loading branch information
2 people authored and crdant committed Dec 30, 2020
1 parent 7d00576 commit c2c63fb
Showing 1 changed file with 22 additions and 5 deletions.
27 changes: 22 additions & 5 deletions plugins/git/git.plugin.zsh
Expand Up @@ -25,13 +25,30 @@ function work_in_progress() {
fi
}

# Check if main exists and use instead of master
# Get the default 'main' branch
# Marc(2020-07-11): I hope to be able to remove this someday
function git_main_branch() {
if [[ -n "$(git branch --list master)" ]]; then
echo master
else
echo main
# Get default branch from the origin remote
local branch
branch="${$(command git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null)#refs/remotes/origin/}"

if [[ -n "$branch" ]]; then
echo "$branch"
return
fi

# Look up list of local branches and return the first one that exists
local -a branches
branches=(${(@f)"$(command git for-each-ref --format='%(refname:short)' refs/heads 2>/dev/null)"})
for branch in master main; do
if (( ${branches[(Ie)$branch]} )); then
echo "$branch"
return
fi
done

echo master
return 1
}

#
Expand Down

0 comments on commit c2c63fb

Please sign in to comment.