我是一个git新手,我一直在阅读一个"主"分支."主人"只是人们使用的传统名称还是具有特殊含义HEAD?
当我git branch对我拥有的克隆进行处理时,我只看到一个单独的分支 - 我正在使用的那个分支.根本没有"主人".如果我输入git checkout master(正如我在很多教程或指南中看到的那样),我会得到
error: pathspec 'master' did not match any file(s) known to git.
Run Code Online (Sandbox Code Playgroud)
我很困惑为什么我的克隆没有一个master人似乎暗示它总是存在.
Bun*_*nyk 85
要签出本地不存在但位于远程仓库中的分支,您可以使用以下命令:
git checkout -t -b master origin/master
Run Code Online (Sandbox Code Playgroud)
Amb*_*ber 67
大多数Git存储库master用作主要(和默认)分支 - 如果您初始化新的Git repo via git init,它将master默认签出.
但是,如果您克隆存储库,则您拥有的默认分支是远程HEAD指向的任何内容(HEAD实际上是指向分支名称的符号引用).因此,如果您克隆的存储库有一个HEAD指向,比方说foo,那么您的克隆将只有一个foo分支.
您克隆的远程可能仍然有一个master分支(您可以检查git ls-remote origin master),但默认情况下您不会创建该分支的本地版本,因为git clone只检查远程的分支HEAD.
Mat*_*tis 41
master 它只是一个分支的名称,除了它是在创建新的存储库时默认创建的,它没有什么神奇之处.
您可以将其添加回来git checkout -b master.
eac*_*eau 21
我实际上遇到了与全新存储库相同的问题.我甚至试过创建一个git checkout -b master,但它不会创建分支.然后我意识到如果我做了一些更改并提交了它们,git创建了我的主分支.
ant*_*iob 13
在我的情况下,有一个开发分支但没有主分支.因此,我克隆了将新创建的HEAD指向现有分支的存储库.然后我创建了缺少的主分支并更新HEAD以指向新的主分支.
git clone git:repositoryname --branch otherbranch
git checkout -b master
git update-ref HEAD master
git push --set-upstream origin master
Run Code Online (Sandbox Code Playgroud)
dig*_*git 12
如果它是你克隆的新仓库,它可能仍然是空的,在这种情况下:
git push -u origin master
应该可以解决它.
(在我的情况下做了.不确定这是同一个问题,我想我应该发布这个问题.可能会帮助其他人.)
我遇到了同样的问题并找出了问题所在.初始化存储库时,实际上没有任何分支.当您启动项目运行git add .然后git commit将创建主分支.
没有检查任何东西你没有主分支.在这种情况下,您需要按照此处其他人建议的步骤进行操作.
| 归档时间: |
|
| 查看次数: |
150580 次 |
| 最近记录: |