【git】.gitignore的规则和写法

.gitignore用于设定git在提交时忽略特定文件,常用于排除中间文件、编译产物等。文件中包含匹配模式,如*.a忽视所有.a文件,!/bin/run.sh则不忽视bin目录的run.sh。忽略规则按命令行、.gitignore、$GIT_DIR/info/exclude和全局core.excludesfile的顺序应用,具有优先级差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

.gitignore的作用

.gitignore文件是在git提交的时候用来屏蔽某些你不想提交上去的文件。
项目开发过程中,有时候不想把一些文件(如中间文件/编译文件等)提交到git上。这个时候就由.gitignore文件来筛选出不想提交的文件。所筛选的文件/夹将不会被追踪(tracked),push的时候也不会上传到git上。

语法规范

#:开头的行表示注释行
*:用来匹配零个或多个字符
*.a表示忽略.a文件;
*.[oa]表示忽略所有以.a和.o结尾的文件,*~忽略所有以~结尾的文件;
[]用来匹配括号内的任一字符,如[abc],也可以在括号内加连接符,如[0-9]匹配0至9的数;
?用来匹配单个字符;
!:用来否定忽略,比如前面用了*.txt,然后使用!*a.txt,则这个a.txt不会被忽略
/:正斜杠在前:匹配项目根目录;如/bin表示忽略根目录下的bin文件,/bsp/表示忽略根目录下的bsp文件夹;
正斜杠在后:匹配文件夹以及在该文件夹路径下的内容,但是不匹配该文件;如bsp/表示忽略bsp文件夹里的所有文件;
**:匹配多级目录,可在开始,中间,结束;

忽略优先级

在.gitignore文件中,每一行指定一个忽略规则,Git 检查忽略规则的时候有多个来源,它的优先级如下(由高到低):

从命令行中读取可用的忽略规则
当前目录定义的规则
父级目录定义的规则,依次递推
$GIT_DIR/info/exclude 文件中定义的规则
core.excludesfile中定义的全局规则

常用匹配规则示例

bin/: 忽略当前路径下的bin文件夹,bin文件夹下的所有内容都会被忽略,不会忽略根目录下的 bin 文件
/bin: 忽略根目录下的bin文件
/*.c: 忽略 cat.c,不忽略 build/cat.c
debug/*.obj: 忽略 debug/io.obj,不忽略 debug/common/io.obj 和 tools/debug/io.obj
**/foo: 忽略/foo, a/foo, a/b/foo等
a/**/b: 忽略a/b, a/x/b, a/x/y/b等
!/bin/run.sh: 不忽略 bin 目录下的 run.sh 文件
*.log: 忽略所有 .log 文件
config.php: 忽略当前路径的 config.php 文件

参考文献

.gitignore的用法
.gitignore文件用法及如何配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

繁星知微

能帮助到你是我最大的荣幸

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值