error: Sparse checkout leaves no entry on working directory

error: Sparse checkout leaves no entry on working directory

首先告诉你,我已经检查了所有类似的线程并搜索了google 以找出问题所在,但没有成功。我的问题是我试图在 git 中使用稀疏结帐,但出现此错误:

error: Sparse checkout leaves no entry on working directory

我有这个 60GB 的存储库,我需要克隆它。我只需要它的一部分,所以为了节省磁盘 space 我想使用稀疏结帐。这就是我所做的:

  1. mkdir repoDir
  2. git init repoDir
  3. cd repoDir
  4. git remote add origin <repo url>
  5. git config core.sparsecheckout true
  6. echo "some/dir/" >> .git/info/sparse-checkout
  7. git pull --depth=1 origin master

请注意,我添加的遥控器没有 -f 标志,因此不会获取任何内容。

结果:

error: Sparse checkout leaves no entry on working directory

我尝试了几种方法:

我的git版本:git version 1.9.3 (Apple Git-50)

OSX Yosemite 10.10.2 (14C109)

事实证明 "some/dir/" 是错误的,因为我没有存储库,所以我不知道它是真实的结构。我能够通过 Web 界面浏览它,但我发现文件夹与真正的存储库文件夹结构不完全对应。

未来的教训:确保在创建 sparse-checkout 文件之前了解文件夹结构。

我想要遵循的操作顺序是相似的,即另一个 post 中建议的操作顺序。我收到错误消息

error: Sparse checkout leaves no entry on working directory

启动 git pull <remote> <branch> 时分支为 master

正如@lawicko所说,在项目网页中,我可以点击我的方式进入要克隆的子目录并复制该页面的URL; ctrl+L ctrl+C 使这件事变得又好又快。这个 URL 的形式是

https://gitlab.com/<username>/<project>/tree/master/<subdir>/<subdir> 

我的sparse-checkout文件接受的部分是master

的children
<subdir>/<subdir>/

尾部斜杠。

作为相同目的的替代方案,在网页顶部的 drop-down 菜单右侧有另一个路径 <project>/<subdir>/<subdir> 用于切换分支。 在这种情况下,我会复制并粘贴 <project> 的 children 加上结尾的斜杠。 而且这个路径不像 URL 那样容易复制和粘贴。

请注意,如果您在 windows 上使用 sparse-checkout,您可能需要根据 https://github.com/git-for-windows/git/issues/2777

添加 core.protectNTFS false