如何从命令行/终端获取主分支名称?
我知道主分支在默认情况下称为master
,但是可以将其重命名为他们想要的任何名称。
PS-最好获得本地和远程主分支的名称。
编辑:我所说的main branch
可能称为default branch
或stable branch
。这是您(应该)将所有内容(稳定/工作)合并到其中的一种。
答案 0 :(得分:1)
您可能想使用此命令string str1 = "First string";
string str2 ("Second string");
string str3 {"Third string"};
,如果您想同时使用git branch -r
,则-r
仅用于列出远程分支。
通常,主分支指向-a
之类的origin/HEAD
答案 1 :(得分:1)
你也可以这样使用:
alias gc-m='git checkout `git branch -rl "*/HEAD" | rev | cut -d/ -f1 | rev`'
答案 2 :(得分:0)
我对git
并不了解,但是在git
中通常有{remote}/HEAD
,例如origin/HEAD
。以下是man page of git remote
的摘录:
set-head
Sets or deletes the default branch (i.e. the target of the
symbolic-ref refs/remotes/<name>/HEAD) for the named remote.
Having a default branch for a remote is not required, but allows
the name of the remote to be specified in lieu of a specific
branch. For example, if the default branch for origin is set to
master, then origin may be specified wherever you would normally
specify origin/master.
据此我了解到{remote}/HEAD
是{remote}
的主要/默认分支。可以使用此名称获取分支的名称(有人知道更好的/管道命令吗?):
# With "remotes/"
git branch -r | grep -Po "HEAD -> \K.*$"
remotes/origin/master
# Without "remotes/"
git branch -r | grep -Po "HEAD -> remotes/\K.*$"
origin/master
当要获取本地main / default分支时,通常没有HEAD
分支,但是通常只有一个分支跟踪{remote}/HEAD
,我们可以使用该名称(再次,肯定有更好的命令):
git branch -vv | grep -Po "[ *gb]*\K[^ ]*(?=[ ][ 0-9a-f]* \[$(git branch -r | grep -Po "HEAD -> \K.*$"))"
master
答案 3 :(得分:0)
如果您假设主分支将被称为 master
或 main
,那么我将执行以下操作来快速检测本地存储库中的主分支名称:
git_main_branch () {
git branch | cut -c 3- | grep -E '^master$|^main$'
}
然后我需要知道主分支名称的其他命令可以使用它。例如我有 gc-m
代表“git checkout main branch”:
alias gc='git checkout '
alias gc-m='gc $(git_main_branch)'