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

y4ekin9u  于 2023-01-19  发布在  Git
关注(0)|答案(6)|浏览(580)

我和一些同事一直在处理一个存储在私有git仓库中的项目,从历史上看,没有任何问题,但最近我尝试克隆时遇到了以下问题:

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

git log提供:
致命错误:当前分支"master"尚未提交任何提交
这是不正确的--我的同事在12月6日推送了大量的(非空的)修改(尽管现在那个分支在--single-branch clone尝试中没有显示).当他ssh进入git仓库时,那里有大量的目录结构。
所以我的问题是:
1.怎么会发生这种事?
1.我们如何恢复存储库呢?看起来这些东西在远程存储库中,但是由于某些原因,它没有意识到它在那里。

xoshrz7s

xoshrz7s1#

如果repo托管在gitlab服务器上,并且你使用git over http来克隆repo,那么它可能与以下代码有关:

Git over HTTP will receive an empty repo if giltab-git-http-server is not properly configured
如果由于某种原因gitlab-git-http-server没有正确配置,或者您使用的是直接转发到Unicorn的自定义nginx或Apache代理,并且您尝试通过HTTP进行克隆,则请求成功,您将收到200和空repo。

快速修复是使用***git over ssh***来克隆存储库。

f8rj6qna

f8rj6qna2#

你已经克隆了正确的仓库。我认为它们还没有被推入master分支。其他分支将像origin/development-example一样存在。你需要创建一个本地分支,它可以跟踪远程分支,然后你就可以得到最新的代码。这就是你如何跟踪远程分支:

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

kuuvgm7e3#

当您克隆一个没有提交的新创建的存储库时,就会发生这种情况。
正如它所说,这只是一个警告,如果预计存储库中什么都没有,你可以继续添加文件,提交并推回。
如果它不应该是空的,请联系提供链接的人员/管理员。

5anewei6

5anewei64#

在我的例子中,当我试图从另一台机器克隆回购协议时,这是一个愚蠢的错误:我使用https而不是ssh作为URL中的协议。令人惊讶的是,我没有收到任何错误,但消息“您似乎克隆了一个空的存储库”。

jhdbpxl9

jhdbpxl95#

在迁移到新的gitlab服务器后遇到了同样的问题。执行以下步骤后,问题已得到修复:即项目URL:http://gitlab.abc.work/neptune-open/neptune-developer-guide.git

  1. git克隆网站www. example. com git@gitlab.abc.work/neptune-open/neptune-developer-guide.git
  2. vi neptune-developer-guide/. git/config,将"源"网址更改为http格式。[远程"源"]网址= http://gitlab.abc.work/neptune-open/neptune-developer-guide.git
    1.修改项目中的任何文件
  3. cd neptune-developer-guide && git add.&& git commit-m "修复git克隆问题"
  4. git push原始主机
ryoqjall

ryoqjall6#

我的一个同事也遇到了类似的问题。坦白说,我不知道为什么会发生这种情况,因为一个简单的HTTPS克隆对我们团队的其他人来说是有效的。但是,最终,这里有一个解决方案帮助了我们--我们不得不手动地做基本相同的事情,而不是git clone
1.为项目创建一个空文件夹,例如project/
1.在project/中,运行git init
1.添加遥控器:git remote add origin https://github.com/yourAccount/yourrepo.git
1.从遥控器拉出:git pull origin master

相关问题