Git clone:"你似乎克隆了一个空的存储库"

use*_*261 5 git

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

Cloning into 'project'...
warning: You appear to have cloned an empty repository.
Checking connectivity... done.
Run Code Online (Sandbox Code Playgroud)

A git log提供:

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

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

所以我的问题:

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

Emi*_*ron 7

如果repo托管在gitlab服务器上,并且你使用git http来克隆repo,它可能与此有关:

如果giltab-git-http-server配置不正确,Git over HTTP将收到空的repo

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

一个快速的解决方法是使用混帐通过ssh来克隆回购.


小智 5

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

git branch --track dev-example origin/dev-example
git checkout dev-example
Run Code Online (Sandbox Code Playgroud)