.gitignore设置跟踪忽略文件夹中文件

本文详细介绍了如何使用 Git 的 .gitignore 文件来过滤不需要版本控制的文件和目录。内容涵盖基本规则、配置语法以及常见问题,例如如何追踪特定文件夹内的特定文件类型。通过示例展示了如何正确设置规则,避免误忽略或追踪文件。
摘要由CSDN通过智能技术生成
  • 常用规则
规则作用
/mtk/过滤整个文件夹
*.zip过滤所有.zip文件
/mtk/do.c过滤某个具体文件
!/mtk/one.txt追踪(不过滤)某个具体文件

注意:如果你创建.gitignore文件之前就push了某一文件,那么即使你在.gitignore文件中写入过滤该文件的规则,该规则也不会起作用,git仍然会对该文件进行版本管理。

  • 配置语法
    1. 以斜杠“/”开头表示目录;
    2. 以星号“*”通配多个字符;
    3. 以问号“?”通配单个字符
    4. 以方括号“[]”包含单个字符的匹配列表;
    5. 以叹号“!”表示不忽略(跟踪)匹配到的文件或目录。

注意: git 对于 .gitignore配置文件是按行从上到下进行规则匹配的
示例: 假设想要忽略根目录下所有的名为Win7Release或release的文件夹,可在.gitignore文件中添加如下规则

*[Rr]elease/
  
  
  • 1

若想忽略类似test/bin/目录下名为Win7Release或release的文件夹,则添加规则

*/bin/*[Rr]elease/
  
  
  • 1

注意:当添加的规则中包含目录层级时,该目录应为相对于根目录的完整路径,上面的规则若修改为bin/*[Rr]elease/是无效的。若想只忽略根目录下名为Win7Release或release的文件夹,可添加规则

/*[Rr]elease/
  
  
  • 1
  • 跟踪忽略文件夹中文件

假设想要忽略所有的名为Win7Release或release的文件夹下除.txt文件之外的文件,很容易写成如下错误形式

*[Rr]elease/
!*[Rr]elease/*.txt

注意:上面已经说过git对于.gitignore配置文件是按行从上到下进行规则匹配的,由于先执行*[Rr]elease/忽略了所有符合条件的文件夹,接下来执行!*[Rr]elease/*.txt时找不到名为*[Rr]elease的文件夹,也就无法追踪这些文件夹下的txt文件了。

所以,在这里,第一步我们不应该忽略这些文件夹,而应该忽略这些文件夹下的所有文件,正确规则添加如下

*[Rr]elease/*
!*[Rr]elease/*.txt

*/bin/*[Rr]elease/*
!*/bin/*[Rr]elease/*.txt

注意:在这里不能交换忽略规则与追踪规则额执行顺序,因为若先执行追踪规则(如!*[Rr]elease/*.txt),接下来执行的忽略规则(如*[Rr]elease/*)会忽略所有文件,包括txt文件!

若我们想要追踪的txt文件在*[Rr]elease文件夹下名为files的文件夹内,上面的规则是错误的,因为执行的忽略规则的时候已经忽略了files文件夹,所以在后面直接添加追踪命令(如!*[Rr]elease/files/*.txt)是无效的,正确规则添加如下

*[Rr]elease/*
!*[Rr]elease/*.txt
!*[Rr]elease/files/
*[Rr]elease/files/*
!*[Rr]elease/files/*.txt

*/bin/*[Rr]elease/*
!*/bin/*[Rr]elease/*.txt
!*/bin/*[Rr]elease/files/
*/bin/*[Rr]elease/files/*
!*/bin/*[Rr]elease/files/*.txt

说明:
1. 执行*[Rr]elease/*,忽略根目录下符合条件的文件夹下的所有文件
2. 执行!*[Rr]elease/*.txt,追踪根目录下符合条件的文件夹下的txt文件
3. 执行!*[Rr]elease/files/,追踪根目录下符合条件的文件夹下的files文件夹
4. 执行*[Rr]elease/files/*,忽略files文件夹下的所有文件
5. 执行!*[Rr]elease/files/*.txt,追踪files文件夹下的txt文件

参考链接
http://www.cnblogs.com/kevingrace/p/5690241.html
http://stackoverflow.com/questions/5533050/gitignore-exclude-folder-but-include-specific-subfolder

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值