Git是否支持通过参数传入额外忽略规则执行add/status等命令
Git临时追加忽略规则的实现方法
Git原生支持在不修改.gitignore文件的前提下,临时追加文件忽略匹配模式,适配git status、git add、git diff等所有涉及路径匹配的操作,没有你举例的--ignore同名参数,但有官方支持的等价实现,单次命令生效,不会改动仓库原有配置。
直接使用路径排除规范(全版本兼容)
所有Git版本都支持:(exclude)路径匹配规则(可简写为:!),直接在命令末尾通过该规范追加要忽略的模式即可,注意用单引号包裹规则避免Shell提前展开通配符。
对应你要临时忽略*bin匹配文件的需求,各命令写法如下:- 查看状态:
git status -- ':(exclude)*bin' - 暂存文件:
git add . -- ':(exclude)*bin' - 查看差异:
git diff -- ':(exclude)*bin'
该方式无需任何额外配置,随写随用。
- 查看状态:
高版本Git简化参数(Git 2.20+支持)
Git 2.20及以后版本的常用路径操作命令,直接提供了--exclude参数,写法更直观,效果和路径排除规范完全一致:git status --exclude='*bin'多规则临时忽略方案
如果需要一次临时追加多条忽略规则,可以先把所有规则写到任意临时文件中,执行命令时通过-c参数临时指定核心忽略文件路径即可,该配置仅对当前单次命令生效,不会修改原有Git配置:- 先将临时忽略规则写入临时文件,比如在
/tmp/tmp_git_ignore中写入*bin以及其他需要临时忽略的模式 - 执行对应Git命令:
git -c core.excludesfile=/tmp/tmp_git_ignore status
- 先将临时忽略规则写入临时文件,比如在
*注意:所有上述忽略规则仅对未被Git跟踪的文件生效,如果目标文件已经被纳入Git版本跟踪,忽略规则不会生效,这类文件需要通过git update-index --assume-unchanged <文件路径>临时标记为忽略变更。
内容的提问来源于stack exchange,提问作者Robber Pen
相关产品推荐
相关产品推荐

