如何用git add命令一次性添加多种扩展名的文件?
单条Git命令添加多扩展名文件的可行方案
你提到的git add *.{dll,exe,json}写法完全可以实现批量添加多种扩展名的文件,而且是CI脚本里高效简洁的选择。
原理说明
这个语法是Shell的大括号扩展(不是Git自身的fileglob特性):执行命令时,Shell会先把*.{dll,exe,json}展开成*.dll *.exe *.json,再传递给git add,效果和手动写三个通配符命令完全一致。
实用扩展技巧
- 支持任意数量的扩展名,比如10种的话直接写:
git add *.{dll,exe,json,txt,md,xml,bin,log,cfg,ini} - 如果CI环境中可能存在某些扩展名无匹配文件的情况(比如没有.dll文件),可以在脚本开头添加
shopt -s nullglob(仅适用于Bash),这样Shell会忽略匹配不到文件的通配符,避免Git报错。 - 若CI使用的是不支持大括号扩展的Shell(比如Alpine Linux默认的
sh),可以直接罗列通配符:
或者用git add *.dll *.exe *.json *.txt *.mdfind命令配合xargs(适合复杂场景):find . -type f \( -name "*.dll" -o -name "*.exe" -o -name "*.json" \) -not -path "./.git/*" | xargs git add
内容的提问来源于stack exchange,提问作者Guillermo Ibáñez
相关产品推荐
相关产品推荐

