mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2025-09-20 01:36:15 +08:00
feat(git): use remote default branch to guess main branch (#13212)
Co-authored-by: Carlo Sala <carlosalag@protonmail.com>
This commit is contained in:
parent
266bc17ab3
commit
2525dae661
@ -31,16 +31,26 @@ function git_develop_branch() {
|
||||
return 1
|
||||
}
|
||||
|
||||
# Check if main exists and use instead of master
|
||||
# Get the default branch name from common branch names or fallback to remote HEAD
|
||||
function git_main_branch() {
|
||||
command git rev-parse --git-dir &>/dev/null || return
|
||||
local ref
|
||||
|
||||
local remote ref
|
||||
|
||||
for ref in refs/{heads,remotes/{origin,upstream}}/{main,trunk,mainline,default,stable,master}; do
|
||||
if command git show-ref -q --verify $ref; then
|
||||
echo ${ref:t}
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
|
||||
# Fallback: try to get the default branch from remote HEAD symbolic refs
|
||||
for remote in origin upstream; do
|
||||
ref=$(command git rev-parse --abbrev-ref $remote/HEAD 2>/dev/null)
|
||||
if [[ $ref == $remote/* ]]; then
|
||||
echo ${ref#"$remote/"}; return 0
|
||||
fi
|
||||
done
|
||||
|
||||
# If no main branch was found, fall back to master but return error
|
||||
echo master
|
||||
|
Loading…
x
Reference in New Issue
Block a user