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