我正在使用一个包含大量文件的存储库,需要几个小时才能签出。我正在研究 Git 是否可以很好地与这种存储库配合使用,因为它支持稀疏签出,但我能找到的每个示例都执行以下操作:
git clone <path>
git config core.sparsecheckout true
echo <dir> > .git/info/sparse-checkout
git read-tree -m -u HEAD
此命令序列的问题是原始克隆也会进行签出。如果将 -n 添加到原始克隆命令中,则 read-tree 命令会导致以下错误:
错误:稀疏签出在工作目录中没有留下任何条目
如何在不先检出所有文件的情况下进行稀疏检出?
请注意,此答案确实从存储库下载了数据的完整副本。这git remote add -f
命令将克隆整个存储库。来自的手册页git-remote https://git-scm.com/docs/git-remote#git-remote-emaddem:
With -f
选项,git fetch <name>
远程信息设置后立即运行。
尝试这个:
mkdir myrepo
cd myrepo
git init
git config core.sparseCheckout true
git remote add -f origin git://...
echo "path/within_repo/to/desired_subdir/*" > .git/info/sparse-checkout
git checkout [branchname] # ex: master
现在您会发现您有一个“修剪”的签出,仅包含来自 path/within_repo/to/desired_subdir 的文件(并且在该路径中)。
请注意,在 Windows 命令行上,您不能引用路径,即您必须将第 6 个命令更改为以下命令:
echo path/within_repo/to/desired_subdir/* > .git/info/sparse-checkout
如果不这样做,您将在稀疏结帐文件中获得引号,并且它将不起作用
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)