排查文件为什么没进 Git 时,直接翻一大串 .gitignore 不太方便。git check-ignore -v 会把命中的规则和来源文件一起打印出来。
环境:Git 2.25+,在临时目录里可以这样试:
mkdir ignore-demo && cd ignore-demo
git init -q
printf 'node_modules/\n*.log\n' > .gitignore
mkdir -p node_modules logs
printf 'cache\n' > node_modules/cache.txt
printf 'debug\n' > logs/app.log
printf 'note\n' > note.txt
git check-ignore -v node_modules/cache.txt logs/app.log note.txt
输出里会带上类似 .gitignore:1:node_modules/ 的位置,没被忽略的 note.txt 默认没有输出。想检查已经被 Git 跟踪的文件是否会被某条规则匹配,可以加 --no-index;不过忽略规则不会自动让已跟踪文件消失。这个命令比临时改 .gitignore 再试更稳一点。