如何创建 .gitignore 文件
在仓库根目录创建名为 .gitignore 的文本文件,每行一条忽略规则(支持 通配、目录/ 结尾、! 取反、# 注释),保存即生效。最快的方式是用 gitignore.io 或 GitHub 模板生成对应技术栈的规则。
在仓库根目录新建一个名为 .gitignore 的纯文本文件,每行写一条忽略规则,保存后立即生效(对未跟踪文件)。Windows 资源管理器不让建点开头的文件名时,用命令行 touch .gitignore 或编辑器另存为。
创建
touch .gitignore # Linux/macOS
type nul > .gitignore # Windows cmd
语法速查
# 注释用井号
*.log # 所有 .log 文件
build/ # build 目录(任意层级)
/target # 只匹配根目录的 target
doc/*.txt # doc 下直接子级 txt
doc/**/*.pdf # doc 下所有层级的 pdf
!important.log # 取反:这个不忽略
temp? # ? 匹配单个字符
更快的方式:用模板
- GitHub 建仓库时选技术栈自动生成;
- gitignore.io(
curl "https://www.toptal.com/developers/gitignore/api/python,visualstudiocode" > .gitignore); - IDE 插件(VS Code 的 gitignore 插件右键生成)。
验证规则
git check-ignore -v some-file.log # 显示命中了哪条规则
git status --ignored # 总览被忽略的文件
常见问题(FAQ)
Q:加了规则但文件还出现在 git status 里?
该文件已被跟踪。git rm --cached <文件> 移出索引后规则才生效。
Q:.gitignore 本身要提交吗?
要。它属于项目的共享约定,进版本库让全队生效。个人专属的忽略规则放 .git/info/exclude。
Q:规则优先级怎么算?
同一文件后面的规则覆盖前面的;子目录的 .gitignore 覆盖父目录的;! 取反是最后的例外手段(但父目录被整体排除时取反无效)。