克隆一个git存储库而不检查整个repo - 稀疏结账程序?

时间:2016-12-20 20:14:14

标签: git sparse-checkout

我需要访问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 

0 个答案:

没有答案