当前位置: 首页 > news >正文

什么是 .gitignore?为什么每个 Git 项目几乎都离不开它?

当我们刚开始接触 Git 时,最常用的命令往往是:

git init git add . git commit -m "first commit"

很多人会发现,执行完git add .之后,Git 似乎把整个项目目录里的文件都加入了版本控制。

这时就会产生一个问题:

是不是所有文件都应该提交到 Git 仓库?

答案显然是否定的。

而解决这个问题的关键文件,就是今天要介绍的——.gitignore


什么是 .gitignore?

.gitignore是 Git 项目中的一个配置文件。

它的作用非常简单:

告诉 Git 哪些文件或目录不需要纳入版本控制。

换句话说,当 Git 扫描项目文件时,会先查看.gitignore中的规则。

符合规则的文件将被忽略,不会出现在待提交列表中。


为什么需要 .gitignore?

假设你正在开发一个 Vue 或 uni-app 项目。

项目目录可能长这样:

project/ ├── src/ ├── node_modules/ ├── unpackage/ ├── package.json ├── package-lock.json └── .gitignore

如果没有配置.gitignore,执行:

git add .

Git 会把所有文件都加入版本控制。

这可能带来很多问题:

1. 仓库体积暴增

例如:

node_modules/

里面可能包含:

  • 数万个文件

  • 数百 MB 甚至数 GB 数据

而这些内容完全可以通过:

npm install

重新生成。

上传到 Git 仓库不仅浪费空间,还会降低克隆速度。


2. 临时文件污染仓库

开发过程中会产生很多临时文件:

*.log .cache .temp

这些文件对项目本身没有任何价值。

如果提交到仓库:

  • 历史记录会变得混乱

  • 团队成员经常出现无意义冲突


3. 泄露敏感信息

很多项目会存在:

.env .env.local

文件。

里面可能包含:

数据库密码 API Key 服务器地址 Token

如果误提交到 GitHub:

后果可能非常严重。

因此这些文件通常会被加入.gitignore


.gitignore 如何编写?

忽略整个目录

node_modules/

表示忽略:

node_modules/

目录下的所有文件。


忽略指定文件

config.json

表示忽略:

config.json

文件。


忽略某种后缀

*.log

表示忽略:

app.log error.log system.log

所有.log文件。


忽略多个目录

node_modules/ dist/ build/

表示同时忽略多个目录。


前端项目常见配置

对于 Vue、React、uni-app 项目来说,通常会写:

# 依赖 node_modules/ # 打包结果 dist/ build/ unpackage/ # 日志 *.log # VSCode .vscode/ # IDEA .idea/ # Mac .DS_Store # Windows Thumbs.db

这已经能够覆盖大部分场景。


uni-app 项目推荐配置

如果你使用的是 HBuilderX 开发 uni-app 项目,可以直接使用下面的配置:

# 依赖 node_modules/ # HBuilderX缓存 .hbuilderx/ # 打包输出 unpackage/ # 日志 *.log # IDE .vscode/ .idea/ # 系统文件 .DS_Store Thumbs.db

其中:

unpackage/

是 HBuilderX 打包后的产物。

通常不需要提交到仓库。


一个新手最容易踩的坑

很多人会遇到这种情况:

先执行:

git add . git commit -m "init"

然后才添加:

node_modules/

结果发现:

node_modules 仍然被提交

为什么?

因为:

.gitignore 只能忽略未被 Git 跟踪的文件。

已经提交过的文件,即使后来加入.gitignore,Git 仍然会继续跟踪。


如何解决?

需要先从 Git 缓存中移除:

git rm -r --cached node_modules

然后重新提交:

git commit -m "remove node_modules"

此时.gitignore才会真正生效。


我的建议

对于绝大多数项目来说,.gitignore不是可选项,而是必备项。

养成以下习惯:

  1. 创建项目后第一时间配置.gitignore

  2. 不提交依赖包目录

  3. 不提交编译产物

  4. 不提交日志文件

  5. 不提交密码、Token 等敏感信息

这样不仅能让仓库保持整洁,也能避免很多不必要的问题。


总结

一句话理解.gitignore

Git 负责记录应该保存的文件,而.gitignore负责告诉 Git 哪些文件不值得保存。

对于个人开发者来说,它能让仓库更干净;

对于团队开发来说,它能减少冲突,提高协作效率。

虽然只是一个小小的配置文件,但几乎每一个成熟的 Git 项目都离不开它。

http://www.jsqmd.com/news/1080192/

相关文章:

  • 系统UI客户端(如通知栏媒体控制器、锁屏控件、车载系统等)在处理多个 `MediaSession` 并发的动态变更场景
  • 从“出海”到“扎根”:SASE托起企业全球化的安全韧性
  • 【AI产品经理】第一章AI Agent 产品的本质与设计范式
  • 终极视频修复指南:用untrunc拯救你损坏的MP4/MOV文件
  • 最靠谱的做高德旺铺的公司是哪家?怎么选不踩坑?
  • Apache DolphinScheduler 与 AWS 数据湖仓集成:混合调度与成本优化实战
  • 如何搭建测试平台?
  • 2026分销系统主流功能盘点!智能化、全渠道成核心标配
  • FIFA 23 Live Editor:如何在生涯模式中打造你的完美足球世界?
  • 照着用就行:2026年闭眼可入的专业AI论文写作工具
  • 把U盾“揣”进电脑里:ToDesk USB映射功能科普
  • Silk-V3音频解码器:三步完成微信QQ语音批量转换的终极免费方案
  • 土建井道完工后,为什么必须先验收再装梯?
  • FIFA 23 Live Editor终极指南:免费开源游戏修改器完整教程
  • IDEA安装失败的7大高频报错解析(ClassNotFoundException/Plugin Not Loaded/Java Version Mismatch),一文终结重装噩梦
  • Bilibili视频转文字工具bili2text:模块化架构与工程实践
  • Windows右键菜单终极管理指南:告别臃肿,提升效率的完整方案
  • 北京防水补漏
  • 超接触关系:从布尔代数到复杂系统建模的形式化工具
  • 告别线上排查难题!methodTraceLog —— 让 Spring Boot 方法级可观测性触手可及
  • Java微服务开发环境迁移VMware的生死线:CPU核数、Swap分区与GC日志联动调优的4个硬指标(附Grafana监控模板)
  • 如何快速修复损坏MP4视频:开源工具的完整指南
  • 球迷必装!NAS部署2026世界杯开源伴侣,比分/赛程/预测一站搞定
  • 2026年集团多组织协同、央企信创适配、中小企业易上手系统盘点
  • 巨量本地推:投放方法、计费模式与效果怎么样
  • 每单元存1比特和4比特差多远?Flash颗粒SLC到QLC的物理极限与工程突围
  • 2026年GEO优化服务商综合实力排行榜:从流量收割到心智占领的选型指南
  • 性价比高的风车靶哪个靠谱
  • i.MX 6与i.MX 7系列选型指南:从核心架构到外设接口的实战解析
  • IDEA 无法打印Mybatis、Mybatis Plus日志的解决办法