3

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

0 回答 0