Git 2.32.0运行git ls-files -i提示需搭配-o或-c参数问题咨询
报错是否为预期行为
是,这是Git 2.32.0版本引入的故意变更,属于预期行为。
小版本更新后命令失效的原因
之前版本的git ls-files -i存在逻辑歧义:当用户没有明确指定筛选范围时,Git内部默认的范围逻辑并不符合绝大多数用户的使用预期,甚至会在部分场景下输出错误结果。Git维护团队在2.32.0版本修复了这个歧义问题,选择强制要求用户显式指定筛选范围,避免隐式默认带来的错误输出。
虽然小版本更新原则上不会破坏向下兼容,但本次变更属于bug修复范畴,权衡潜在的错误输出影响后,维护团队选择了调整参数校验逻辑。
参数使用说明
你提到的帮助文档中标注的-c默认参数,仅适用于不使用-i参数的常规git ls-files调用场景。当搭配-i筛选被忽略文件时,必须显式指定你要查询的文件范围:
- 如果你要查询已提交到仓库、但匹配.gitignore规则的文件,也就是你原来的需求,只需要在原有命令上加上
-c参数即可,修改后的命令为:git ls-files -c -i --exclude-standard - 如果你要查询未跟踪、且被.gitignore规则排除的文件,就加上
-o参数。
内容的提问来源于stack exchange,提问作者friederbluemle
相关产品推荐
相关产品推荐

