我需要访问250 GB的git存储库中的少量目录。显然,检查整个事情是时间和磁盘空间的重大打击。但是,我无法找到如何获得所需目录的有效解决方案。我可以克隆整个事情,然后启用稀疏结账,但这会打败整个点。
我意识到这已被问过很多次了:
How do I clone a subdirectory only of a Git repository? Is it possible to do a sparse checkout without checking out the whole repository first?
但这些(或其他:http://jasonkarns.com/blog/subdirectory-checkouts-with-git-sparse-checkout/)解决方案都不适用于我。
我在Fedora 25机器上运行git 2.9.3。我已尝试以下方式开始,但我最终得到了整个回购。将-f更改为最后一行的-n无效。
mkdir <repo>
cd <repo>
git init
git remote add -f origin <url>
我也试过这个无济于事:
mkdir myrepo
cd myrepo
git init
git config core.sparseCheckout true
git remote add -f origin git://... #at this point, the whole repo comes down
echo "path/within_repo/to/desired_subdir/*" > .git/info/sparse-checkout
git checkout [branchname] # ex: master
(即使我在git远程添加行之前执行回显行,也会发生同样的事情。)
当然有一个简单的解决方案,实际上有效,不是吗?
编辑:为了完整起见,这就是我现在基于评论所做的事情。仍然有同样的问题。
mkdir myrepo
cd myrepo
git init
git config core.sparseCheckout true
echo "path/within_repo/to/desired_subdir/*" > .git/info/sparse-checkout
git remote add origin git://...
git pull #at this point, the whole repo comes down