Python 我可以只克隆Git存储库中大小低于指定限制的文件吗?
我的任务是扫描内部Git存储库中的敏感信息(或不应公开的信息) 我的主要问题是,一些开发人员将大blob(+100MB)提交到他们的Git存储库中,这需要很长时间才能下载,并且出于扫描目的而被忽略Python 我可以只克隆Git存储库中大小低于指定限制的文件吗?,python,python-3.x,git,version-control,Python,Python 3.x,Git,Version Control,我的任务是扫描内部Git存储库中的敏感信息(或不应公开的信息) 我的主要问题是,一些开发人员将大blob(+100MB)提交到他们的Git存储库中,这需要很长时间才能下载,并且出于扫描目的而被忽略 有没有办法让Git只克隆大小低于指定限制的文件?如果没有,是否有更好的方法来扫描Git存储库中的敏感信息?是的,这可以通过一个名为“部分克隆”的新功能实现。您可以在克隆时指定一个筛选器,Git将根据该筛选器限制它获取的数据量 例如,您可以执行以下操作,即克隆Git存储库,而不克隆任何大于100 MiB
有没有办法让Git只克隆大小低于指定限制的文件?如果没有,是否有更好的方法来扫描Git存储库中的敏感信息?是的,这可以通过一个名为“部分克隆”的新功能实现。您可以在克隆时指定一个筛选器,Git将根据该筛选器限制它获取的数据量 例如,您可以执行以下操作,即克隆Git存储库,而不克隆任何大于100 MiB的Blob:
git clone --filter=blob:limit=100m https://github.com/git/git.git
请注意,要做到这一点,您应该使用最新版本的Git(2.26.2),并且还需要有合适的服务器端实现。GitHub确实支持这一点,但其他服务器实现可能支持也可能不支持
请注意,尽管GitHub支持部分克隆,但出于效率原因,它限制了可用的过滤器。不过,应该支持按大小限制blob。提出了一个粗略的谷歌搜索(我从未使用过这个)。我以前使用过BFG和git过滤器分支。但在尝试克隆的时候永远不要。部分克隆是从Git本机获取所需内容的唯一方法,而且它还不能完全用于日常使用。你也许能让它为你的案子工作。不过,请注意,这只意味着人们会将敏感数据偷偷放入大数据块中。:-)非常感谢。你能链接到可用的过滤器吗?我还可以按文件扩展名过滤,或者该文件是否为文本文件?过滤器在。无法根据文件扩展名或内容进行筛选。