0

我假设这个名字master每个人都在 git 存储库中工作的“主”分支的名称分支只是一个约定。正确的?
那么我怎么知道 git 存储库中的“主”分支名称是什么,它已被覆盖以免使用该名称master

4

2 回答 2

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

于 2013-06-14T04:09:56.470 回答
0

是的,master只是一个约定。并非每个存储库都有一个名为master. git 还允许您进行任意工作流程。不同的项目使用不同的分支策略。可能有类似“主分支”的东西,但有时根本不需要它。

您始终可以使用git branch -m给提交一个新名称并git reset给一个名称一个新提交。

大多数情况下,您可以使用分支的名称来了解它包含的内容。否则可以使用类似的东西gitk来看看你的提交图。这可能会帮助您识别诸如“主分支”之类的东西。

于 2013-06-13T21:57:43.213 回答