Git clone:“您似乎克隆了一个空的存储库”

时间:2015-12-19 19:50:08

标签: git

我和一些同事一直致力于存储在私有git存储库中的项目。从历史上看,没有任何问题,但最近我试图克隆,并遇到以下问题:

Cloning into 'project'...
warning: You appear to have cloned an empty repository.
Checking connectivity... done.

git log提供:

致命:你当前的分支'master'还没有任何提交

这是不正确的 - 我的同事在12月6日推动了大量(非空)的更改(虽然现在该分支没有显示在--single-branch克隆尝试)。当他进入git存储库时,那里有很多目录结构。

所以我的问题:

  1. 怎么会发生这种情况?
  2. 我们如何恢复存储库?似乎这些东西都在远程仓库上,但出于某种原因,它并不知道它就在那里。

4 个答案:

答案 0 :(得分:7)

如果repo托管在gitlab服务器上,并且您使用git而非http来克隆repo,则可能与此相关:

Git over HTTP will receive an empty repo if giltab-git-http-server is not properly configured

  

如果由于某种原因gitlab-git-http-server未正确配置,   或者您正在使用直接转发的自定义nginx或Apache代理   到Unicorn并且您尝试通过HTTP克隆,请求成功,   你收到一个200和一个空的回购。

快速修复是使用 git over ssh 来克隆回购。

答案 1 :(得分:2)

您已经克隆了正确的存储库。我认为他们没有推进主分公司。其他分支将像origin / developemnt-example那样存在。 您需要创建一个可以跟踪远程分支的本地分支,然后您可以获取最新的代码。这是您跟踪远程分支的方法:

git branch --track dev-example origin/dev-example
git checkout dev-example

答案 2 :(得分:0)

在克隆没有提交的新创建的存储库时会发生这种情况。

如前所述,这只是一个警告。如果预计存储库中没有任何内容,则可以继续添加文件,提交并后退。

如果不应该为空,请联系为您提供链接的人员/管理员。

答案 3 :(得分:0)

对于我来说,当我尝试从另一台计算机克隆存储库时,这是一个愚蠢的错误:我使用https而非ssh作为URL中的协议。令人惊讶的是,我没有任何错误,但是消息“您似乎已经克隆了一个空的存储库”。