新项目的.gitignore该写什么?
通常先排除可重新生成的文件:依赖目录、构建产物和测试缓存。Next.js项目可同时选Node.js和Next.js;Python项目则从虚拟环境、字节码和测试缓存入手。不要把共享配置一并排除。
这里提供18组精简基础模板,并非GitHub模板库的完整镜像,也不会自动识别仓库。下载后保留文件名前面的点,将规则合并到项目的.gitignore,检查后再提交。
规则写了,为什么仍然能看到文件?
先分清“匹配规则”和“已经跟踪”。.gitignore不会让已提交的文件自动退出版本管理。可用git check-ignore -v --no-index path/to/file定位匹配规则,并结合git status检查状态。
确实要停止跟踪某个文件时,git rm --cached -- path/to/file会暂存仓库中的删除操作,但保留本地文件。确认变更后再提交,不要批量照抄清理命令。
共享规则和个人习惯分开处理
团队通用的构建目录适合写进项目规则;个人临时文件可写入.git/info/exclude。本工具不会整目录忽略VS Code或JetBrains共享配置,也不会默认排除锁文件。
三个常用项目示例
# 由LightNode Gitignore生成器生成
# 添加到项目之前,请检查这些基础规则。
# Node.js
node_modules/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-store/
coverage/
.nyc_output/
# Next.js
.next/
out/
.vercel/
*.tsbuildinfo
# macOS
.DS_Store
._*
.Spotlight-V100/
.Trashes/
# 由LightNode Gitignore生成器生成
# 添加到项目之前,请检查这些基础规则。
# Python
__pycache__/
*.py[cod]
.venv/
venv/
.pytest_cache/
.mypy_cache/
.ruff_cache/
.coverage
htmlcov/
*.egg-info/
# VS Code
.history/
*.vsix
# Linux
.Trash-*/
*~
# 由LightNode Gitignore生成器生成
# 添加到项目之前,请检查这些基础规则。
# Java / Maven
*.class
target/
# Gradle
.gradle/
build/
# JetBrains
.idea/workspace.xml
.idea/tasks.xml
.idea/shelf/
.idea/httpRequests/
# Windows
Thumbs.db
ehthumbs.db
Desktop.ini
$RECYCLE.BIN/
Gitignore常见问题
自定义规则会覆盖模板吗?
自定义内容放在末尾。同一优先级下最后匹配的规则生效,因此保留重复规则和!例外,不做全局去重。搜索不会取消已选项,切换组合保留自定义内容,全部清空则两者都删除。
如何忽略日志,但保留一个样例?
可先写/logs/*,再写!/logs/keep.log。不要先用/logs/排除父目录,否则无法重新包含其中的文件。
.env.example会被排除吗?
选用本地环境文件模板时,会忽略.env和.env.*,但保留.env.example与.env.sample。样例中只应写占位值;忽略规则不会清除历史提交中的密钥。
package-lock.json要不要忽略?
模板不排除package-lock.json、yarn.lock、pnpm-lock.yaml、Cargo.lock、composer.lock和Gemfile.lock。是否提交锁文件应结合应用或库的发布方式决定。
规则会上传到服务器吗?
生成在浏览器内完成,不上传仓库,不调用生成接口,不持久保存自定义内容,也不会把规则写入网址。复制和下载由按钮触发。
