【发布时间】:2012-08-10 00:00:15
【问题描述】:
这似乎是不同原因的常见错误。
我有一个简单的裸 git repo,名为“kiflea.git”,我像这样克隆它:
git clone git://kipdola.be/kiflea.git
然后 git 告诉我:warning: remote HEAD refers to nonexistent ref, unable to checkout.
是的,地图中没有版本控制文件,除了 .git 目录。 无论如何,我唯一需要做的就是:
cd kiflea
git checkout master
它有效,所有文件都在那里。 但是我认为克隆一个 repo 会自动检查 master,那么到底发生了什么,我该如何解决?
我注意到,在我执行git checkout master 位之后,它会被添加到我的本地 .git 配置文件中:
[branch "master"]
remote = origin
merge = refs/heads/master
知道这个 git 存储库在遥远的过去曾经是一个 svn 存储库,这可能很有趣。
Ps:使用 gitweb 浏览裸仓库时,明显有一个master 分支:http://kipdola.be/gitweb/?p=kiflea.git;a=summary
【问题讨论】:
-
git ls-remote origin向您展示了什么? -
checkout master位前后相同:25f600739343a7ce32d6311a1e6140870774810b refs/heads/master -
看起来远程存储库已丢失(或从未拥有)其
HEAD。您可以直接访问它吗?如果是这样,请参阅here -
如果你克隆一个仓库并且没有指定分支,它会尝试使用远程头。如下面的答案所述,您不能直接影响哪个分支。但是,通过在克隆时签出不同的分支,您可以避免此检查。在您的情况下,似乎 master 存在,但远程头指向其他地方,因此请使用:
git clone -b master <url> <dir>
标签: git