Git 版本管理在开发中场景,其中.gitignore
也是Git中必不可少的配置文件,.gitignore
文件用于告诉 Git 哪些文件或目录应该被忽略,即不被版本控制系统跟踪和提交。
本部分总体介绍 .gitignore
基础内容,包括作用、匹配规则和注意点。
.gitignore 作用
通过正确配置 .gitignore
文件,可以有效管理哪些文件应被版本控制,哪些文件应被忽略,从而保持代码仓库的整洁和安全。
-
防止提交敏感信息:如 API 密钥、数据库配置等。
-
避免提交不必要的文件:如编译生成的文件、临时文件、日志文件等。
-
保持仓库整洁:只跟踪重要的源代码和配置文件。
.gitignore 匹配规则
.gitignore
文件中的每一行都代表一个匹配模式。以下记录工作中常见的匹配规则和例子,用作备忘:
忽略指定后缀文件
*.log # 忽略所有 .log 文件
*.tmp # 忽略所有 .tmp 文件
忽略指定目录
build/ # 忽略 build 目录及其所有内容
temp/ # 忽略 temp 目录及其所有内容
忽略指定目录下的所有内容
两者存在区别,/写在目录前面代表,仅忽略根目录文件;/写在目录后面代表忽略所有同名目录文件。
/logs # 仅忽略根目录下的 logs 目录
logs/ # 忽略所有 logs 目录,不论其所在位置
使用通配符
*.class # 忽略所有 .class 文件
**/temp # 忽略所有 temp 目录,不论其所在位置
排除特定文件或目录(在已忽略的模式中排除)
*.log
!important.log # 忽略所有 .log 文件,但保留 important.log
忽略特定目录下的所有内容,但保留该目录本身
types/*
!types/global.d.ts # 忽略 types 目录下的所有内容,但保留 global.d.ts 文件
注意点
-
应用顺序:
.gitignore
文件中的规则是从上到下按顺序应用的; -
对已跟踪的文件无效:
.gitignore
只能影响未被 Git 跟踪的文件;对于已被跟踪的文件,需要使用git rm --cached
命令将其从暂存区移除,然后提交修改,否则在本地是不会理解生效的; -
全局
.gitignore
:可以为整个用户环境设置全局的.gitignore
文件,适用于所有 Git 仓库。通过运行git config --global core.excludesfile ~/.gitignore_global
设置。