我假设名称master
分支是每个人都在git存储库中工作的“主”分支,这只是一个约定。对吗?
那么我如何知道git存储库中的“主”分支名称是什么,以便不使用名称master
?
答案 0 :(得分:0)
是的,master
只是一个惯例。并非每个存储库都有一个名为master
的分支。 git也允许你任意工作流程。不同的项目使用不同的分支策略。可能有类似“主要分支”的东西,但有时根本不需要它。
您始终可以使用git branch -m
为提交提供新名称,并git reset
为名称提供新提交。
大多数情况下,您可以使用分支的名称来了解它包含的内容。否则可以使用gitk
之类的东西来查看提交图。这可能会帮助您识别类似“主分支”的内容。
答案 1 :(得分:0)
假设您已经克隆了存储库并且远程的名称是origin
,那么您可以运行以下命令:
git symbolic-ref refs/remotes/origin/HEAD
这通常会打印refs/remotes/origin/master
,但如果项目选择someotherbranch
作为默认设置,则会显示refs/remotes/origin/someotherbranch
。
一些背景知识:在本地(非裸)存储库中,HEAD
表示当前已检出的内容。在共享(裸)存储库中,没有工作目录,因此没有检出任何内容。因此,在裸存储库中,HEAD
用于指示存储库的默认分支(您git clone <url>
时获得的分支)。
当您克隆存储库时,远程存储库的HEAD
引用将复制到您的本地refs/remotes/origin/HEAD
引用,并且每当您执行git remote update
时它都会更新(尽管人们很少更改默认分支)在共享存储库中)。这样可以很容易地看到远程存储库的默认分支的名称(通过运行上面的symbolic-ref
命令)。