我如何知道存储库的主分支名称?

时间:2013-06-13 21:31:33

标签: git version-control

我假设名称master分支是每个人都在git存储库中工作的“主”分支,这只是一个约定。对吗?
那么我如何知道git存储库中的“主”分支名称是什么,以便不使用名称master

2 个答案:

答案 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命令)。