【Git实战】一份专业规范的.gitignore 该怎么写?主流 Vue/Python/Java/Go 通用完整模板(生产直接复制)

📅 2026/7/16 11:07:35
【Git实战】一份专业规范的.gitignore 该怎么写?主流 Vue/Python/Java/Go 通用完整模板(生产直接复制)
很多新手项目上线仓库杂乱不堪几十 G 的node_modules、编译缓存、本地 IDE 配置、日志、环境密钥全部被提交到远程仓库拉取代码巨慢、密钥泄露、评审全是无关文件干扰。.gitignore是项目第一道规范屏障核心作用过滤编译产物、依赖缓存、本地私有配置、系统垃圾、IDE 文件只提交业务源码。本文讲解一份合格.gitignore的编写规范、分层设计思路覆盖 Vue 前端、Python、Java SpringBoot、Go 四大主流技术栈完整可直接复制模板区分通用全局规则 各语言专属规则企业项目开箱即用。一、一份高质量.gitignore 五大设计标准1. 分层分类可读性强按「系统垃圾→IDE 编辑器→通用缓存→语言专属产物→环境密钥→日志」分段加注释区分模块新人接手一眼看懂每条规则作用。2. 精准匹配目录 / 文件避免误过滤源码目录末尾加/如node_modules/仅匹配文件夹不会过滤同名文件通配符*匹配任意字符**/递归匹配所有子目录必要时使用!反向排除保留需要提交的模板配置3. 兼顾多环境杜绝敏感文件上传过滤本地开发环境配置、密钥、数据库配置、.env环境变量防止账号密码提交公网泄露。4. 兼容多编辑器统一过滤 VSCode、IDEA、WebStorm、系统 Mac/Windows 缓存文件团队不同编辑器无冲突。5. 区分开发产物保留必要模板过滤编译打包文件夹dist/target/build但保留.env.example空白模板方便团队复用配置。二、通用基础规则所有项目通用必加适用于 Vue、Python、Java、Go 任何项目不分语言放在.gitignore 最顶部。# 系统垃圾文件 # Mac系统文件 .DS_Store .AppleDouble .LSOverride ._* # Windows系统文件 Thumbs.db Desktop.ini # Linux缓存 *~ # IDE 编辑器配置 # VSCode .vscode/ *.code-workspace # IDEA / JetBrains全家桶 .idea/ *.iml *.iws *.ipr out/ # Sublime、其他编辑器 *.sublime-project *.sublime-workspace # 日志文件 全部过滤 *.log logs/ log/ nohup.out error.log access.log # 环境密钥、私有配置核心安全 .env .env.local .env.dev .env.prod .env.test # 保留空白模板反向排除提交 !.env.example !.env.template # 临时缓存、备份文件 *.bak *.tmp *.swp .cache/ temp/ tmp/ dump/三、分技术栈完整专属.gitignore 模板模板 1Vue / Vite / UniApp 前端项目专用最常用叠加上面通用规则追加前端特有过滤项# Vue/Vite/uni-app 前端专属 # 依赖包体积几十G绝对禁止提交 node_modules/ # 包管理器缓存 .npm .pnpm-store yarn-error.log pnpm-debug.log npm-debug.log* # Vite / Webpack 编译产物 dist/ dist-ssr/ build/ output/ # Vue本地缓存 .cache/ .vuepress/dist .vetur/ .vite/ # 移动端uni-app编译缓存 unpackage/ # TypeScript 类型缓存 *.tsbuildinfo # 本地测试生成的静态资源 public/temp模板 2Python 后端 / 爬虫 / AI 项目专用# Python 专属 # Python字节码缓存 __pycache__/ *.pyc *.pyo *.pyd # 解释器虚拟环境巨占用空间 venv/ env/ .venv/ ENV/ env.bak/ venv.bak/ # 打包产物 *.egg-info/ *.egg dist/ build/ wheelhouse/ # Jupyter Notebook缓存 .ipynb_checkpoints # 数据分析缓存 *.csv.tmp *.xlsx.tmp # 模型大文件、向量库LLM项目重点 *.pth *.bin *.onnx faiss_index/ chroma_db/ # pytest测试缓存 .pytest_cache .coverage htmlcov/模板 3Java SpringBoot / Maven / Gradle 后端# Java SpringBoot 专属 # Maven编译产物 target/ # Gradle缓存 build/ .gradle gradle-app.setting !gradle-wrapper.jar # Java编译class文件 *.class # 本地运行缓存 spring-boot-starter-logging.log heapdump.hprof # 外部依赖本地包 lib/*.jar # 数据库本地文件 *.db *.sqlite模板 4Go 后端项目专用# Go 语言专属 # 编译生成的可执行文件 *.exe *.out *.test # Go缓存目录 vendor/ go.mod.tidy.bak go.sum.bak # 编译缓存 bin/ pkg/ # 测试覆盖率文件 coverage.out四、完整合并成品 DemoVue 项目完整版直接复制使用将通用规则 Vue 专属整合完整可直接保存为项目根目录.gitignore# 系统垃圾文件 .DS_Store .AppleDouble .LSOverride ._* Thumbs.db Desktop.ini *~ # IDE 编辑器配置 .vscode/ *.code-workspace .idea/ *.iml *.iws *.ipr out/ *.sublime-project *.sublime-workspace # 日志文件 *.log logs/ log/ nohup.out error.log access.log # 环境密钥、私有配置 .env .env.local .env.dev .env.prod .env.test !.env.example !.env.template # 临时缓存、备份文件 *.bak *.tmp *.swp .cache/ temp/ tmp/ dump/ # Vue/Vite/uni-app 前端专属 node_modules/ .npm .pnpm-store yarn-error.log pnpm-debug.log npm-debug.log* dist/ dist-ssr/ build/ output/ .vuepress/dist .vetur/ .vite/ unpackage/ *.tsbuildinfo public/temp五、补充实操命令开发高频场景1. 新建并编辑 gitignore# Linux/Mac touch .gitignore vim .gitignore # Windows cmd type nul .gitignore notepad .gitignore2. 文件已经被 Git 追踪新增忽略规则不生效解决办法很多人写完.gitignore发现文件依旧能提交原因文件已经被加入版本库缓存需要删除本地缓存# 单个文件取消追踪 git rm --cached 文件名 # 全部目录批量清除缓存常用 git rm -r --cached . git add . git commit -m 更新gitignore过滤无用文件3. 全局通用 gitignore本机所有项目生效不想每个项目都新建可以配置全局忽略规则所有仓库共用一套过滤# 创建全局忽略文件 touch ~/.global_gitignore # 配置git读取全局忽略 git config --global core.excludesfile ~/.global_gitignore # 在里面写入通用系统、IDE过滤规则即可六、生产规范总结新项目创建第一步新建.gitignore不要等代码写完再补避免大量垃圾文件提交远程区分「通用规则」和「语言专属规则」分层加注释团队协作可读性更高环境配置.env务必过滤只保留模板文件杜绝密钥泄露安全事故依赖目录node_modules/venv/target必须过滤大幅缩减仓库体积、提升拉取速度若文件已被提交执行git rm --cached清除缓存忽略规则才会生效。