我需要访问 250 GB 的 git 存储库中的少量目录。显然,检查整个事情在时间和磁盘空间上是一个很大的打击。但是,我无法找到如何仅获取所需目录的有效解决方案。我可以克隆整个事情,然后启用稀疏结帐,但这会破坏整个观点。
我意识到这已经被问过很多次了:
如何仅克隆 Git 存储库的子目录? 是否可以在不先检出整个存储库的情况下进行稀疏检出?
但这些(或其他: 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 remote add 行之前执行 echo 行,也会发生同样的事情。)
当然,有一个简单的解决方案实际上有效,不是吗?
编辑:为了完整起见,这就是我现在根据评论所做的事情。仍然有同样的问题。
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