Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在不下载文件对象的情况下进行git克隆_Git - Fatal编程技术网

如何在不下载文件对象的情况下进行git克隆

如何在不下载文件对象的情况下进行git克隆,git,Git,是否可以下载所有提交,但不能下载文件本身?我想运行bisect,但从构建服务器下载版本,而不是自己编译。当您运行git bisect时,如果您不想为每个迭代签出新的工作树,您可以提供--no checkout作为参数 git clone也是如此——不签出,以避免克隆后基于头部的工作树 您可以运行git bisect run my_script argumentshavingmy_script执行任何您想要的操作 总之: git clone <repo> --no-checkout g

是否可以下载所有提交,但不能下载文件本身?我想运行bisect,但从构建服务器下载版本,而不是自己编译。

当您运行
git bisect
时,如果您不想为每个迭代签出新的工作树,您可以提供
--no checkout
作为参数

git clone也是如此——不签出,以避免克隆后基于头部的工作树

您可以运行
git bisect run my_script arguments
having
my_script
执行任何您想要的操作

总之:

git clone <repo> --no-checkout
git bisect --no-checkout run my_script arguments
您将要使用的克隆命令:

git clone <repo> --filter=blob:none --filter=tree:0 --no-checkout
git clone--filter=blob:none--filter=tree:0--no签出

这阻止了git在工作目录上创建文件,但clone仍将其下载到.git/objects。这是他要求的,这是我的解释。“下载所有提交,但不下载文件”。他将拥有历史记录,但没有当前的工作树。如果没有.git/文件夹(当然除了git init、git clone等明显的文件夹),你不能运行git bisect(或git任何东西)@phd“只提交没有树和blob的内容。”确切地说,我用“部分克隆”更新了答案blob和树的语法是否仅获取.git文件?@ignacio甚至更多-仅提交而不包含树和blob。值得思考和实验:您可以尝试使用
git clone--filter=blob:none
,但为此,您需要最新的客户端和最新的服务器,支持git协议版本v2。进一步阅读:,我的建议是估计运行
git bisect
所需的提交数量,并使用
git clone--depth
避免克隆整个存储库。将其与
--bare
--no checkout
组合使用。
git clone <repo> --filter=blob:none --filter=tree:0 --no-checkout