如何找出存储库中存在哪个“master”或“main”分支?

pla*_*etp 9 git bash branch

我正在编写一个 Bash 脚本来进行一些 Git 存储库维护。一些存储库用'master'作主分支,而其他存储库则使用'main'. 我可以使用什么 Git 命令来返回这些存在的第一个分支?

PS 我想检查存储库的本地分支,因为总会有本地'master''main'分支。

Eug*_*ash 9

要找出两个本地分支中存在哪一个,可以使用git branch/-l选项--list

git branch -l master main  # outputs 'master' or 'main', provided only one exists
Run Code Online (Sandbox Code Playgroud)

Git 还用星号标记当前分支,因此您可以添加--format以防止这种情况:

git branch -l main master --format '%(refname:short)'
Run Code Online (Sandbox Code Playgroud)


Mar*_*ler 1

好吧,“默认分支”在本地没有任何意义;仅当您的存储库是其他人的远程仓库或其他人托管的远程仓库时,它才有意义。(另外,就“当我从这个本地分支拉取时,我默认拉取哪个分支,但如果你知道这一点,你就不会问这个了。)

git fetch
git branch -r --list 'origin/HEAD' | grep '>'
Run Code Online (Sandbox Code Playgroud)