gitignore语法规则及踩过的坑

本文详细介绍了.gitignore文件的匹配规则,包括忽略注释行、避免递归、忽略文件夹、否定忽略、通配符使用等。同时,提到了两个常见问题:已track文件无法忽略的解决方案以及!开头模式的限制。示例中展示了如何正确配置.gitignore以达到预期效果。

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

匹配规则

1、空行或是以 # 开头的行即注释行将被忽略。

2、可以在前面添加 正斜杠/ 来避免递归,下面的例子中可以很明白的看出来与下一条的区别。

3、可以在后面添加 正斜杠/ 来忽略文件夹,例如 build/ 即忽略 build 文件夹,/doc/build/ 这样的目录也会忽略。

4、可以使用 ! 来否定忽略,即比如在前面用了*.apk,然后使用!a.apk,则这个a.apk不会被忽略。

5、* 用来匹配零个或多个字符,如*.[oa]忽略所有以".o"或".a"结尾;

6、[] 用来匹配括号内的任一字符,如 [abc],也可以在括号内加连接符,如 [0-9] 匹配0至9的数;

7、? 用来匹配单个字符。

8、** 匹配多级目录,可在开始,中间,结束

坑1

.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。

解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:

git rm -rf --cached .		//-r递归, -f强制删除
git add .
git commit -m 'xxxxxxxx'

坑2

! 开头的模式标识否定,该文件将会再次被包含,如果排除了该文件的父级目录,则使用 ! 也不会再次被包含。 可以使用反斜杠进行转义

样例

#ignore all file 
/*
#Don't ignore bellow file
!*.PRJ
!*.txt
#Don't ignore "k5_workspace/source"
!/k5_workspace/
/k5_workspace/*
!/k5_workspace/source
#Don't ignore "ast2500evb_k5_workspace/Build/output/*.ima"
!/k5_workspace/Build/
/k5_workspace/Build/*
!/k5_workspace/Build/output/
/k5_workspace/Build/output/*
!/k5_workspace/Build/output/*.ima
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Jimbo_Zhang

有钱的捧个钱场

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

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

打赏作者

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

抵扣说明:

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

余额充值