mirror of
				https://github.com/ohmyzsh/ohmyzsh.git
				synced 2024-05-11 05:55:17 +00:00 
			
		
		
		
	git: better algorithm to decide what's the main branch
Fixes #9103 Co-authored-by: Yufan You <ouuansteve@gmail.com>
This commit is contained in:
		@@ -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
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user