[英]Git clone: remove warning "you appear to have cloned an empty repository"
[英]Git clone: "You appear to have cloned an empty repository"
我和一些同事一直在研究一个存储在私有 git 存储库中的项目。 历史上没有问题,但最近我尝试克隆,遇到以下问题:
Cloning into 'project'...
warning: You appear to have cloned an empty repository.
Checking connectivity... done.
一个git log
提供:
致命的:您当前的分支 'master' 还没有任何提交
这是不正确的——我的同事在 12 月 6 日推送了大量(非空)更改(尽管现在该分支未在 --single-branch 克隆尝试中显示)。 当他 ssh 进入 git 存储库时,那里有很多目录结构。
所以我的问题:
如果 repo 托管在 gitlab server 上,并且您使用 git over http
克隆 repo,它可能与此有关:
如果giltab-git-http-server
配置不正确,Git over HTTP 将收到一个空的 repo
如果由于某种原因
gitlab-git-http-server
未正确配置,或者您正在使用直接转发到 Unicorn 的自定义 nginx 或 Apache 代理,并且您尝试通过 HTTP 克隆,则请求成功,您会收到 200 和空回购。
一个快速的解决方法是使用git over ssh来克隆 repo。
您已经克隆了正确的存储库。 我认为他们还没有推入 master 分支。 其他分支将在那里,例如 origin/development-example。 您需要创建一个可以跟踪远程分支的本地分支,然后您才能获取最新代码。 这是您可以跟踪远程分支的方式:
git branch --track dev-example origin/dev-example
git checkout dev-example
当您克隆没有提交的新创建的存储库时会发生这种情况。
正如它所说,这只是一个警告。 如果预计存储库中没有任何内容,您可以继续添加文件并提交和推送。
如果它不应该为空,请联系给你链接的人/管理员。
就我而言,当我试图从另一台机器克隆一个 repo 时,这是一个愚蠢的错误:我在 URL 中使用https
而不是ssh
作为协议。 令人惊讶的是,我没有收到错误消息,而是出现“您似乎克隆了一个空存储库”的消息。
我的一个同事刚刚遇到了类似的问题。 坦率地说,我不知道为什么会这样,因为一个简单的 HTTPS 克隆对我们团队的其他成员都有效。 但是,最终,这是一个有帮助的解决方案 - 我们必须做基本相同的操作,而不是git clone
,但手动操作:
project/
project/
中,运行git init
git remote add origin https://github.com/yourAccount/yourrepo.git
git pull origin master
迁移到新的 gitlab 服务器后遇到了同样的问题。 执行以下步骤后已修复:即项目 URL:http://gitlab.abc.work/neptune-open/neptune-developer-guide.git
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.