如何使用GitPython实现仓库浅克隆并正确传递多个filter参数
GitPython传递多个filter参数实现部分克隆的解决方案
错误原因
报错原因是你将多个过滤规则合并为单个带大括号的字符串传入filter参数,Git 无法识别该格式。原生Git CLI中需要独立传递两次--filter参数分别指定规则,GitPython中支持通过给参数传入列表的方式,实现同个命令行选项多次传值。
可行实现代码
from git import Repo print('cloning ....') repo = Repo.clone_from( 'git@gitlab.com:gitlab-org/gitlab-docs.git', './Projects/', # 多个filter规则传入列表,GitPython会自动展开为多个--filter参数 filter=['tree:0', 'blob:none'], sparse=True ) print(repo)
验证说明
上述代码生成的实际执行Git命令和你给出的可运行CLI命令完全一致,不会再出现filter-spec无效的报错。
内容的提问来源于stack exchange,提问作者Kartikeyan Gupta
相关产品推荐
相关产品推荐

