.gitignore学习记录

规则的执行顺序是从上到下的

过滤文件

若文件夹开头为/,则限定为根目录下
否则不论根目录与子目录
文件规则同样


*不会代表/符号
具体来说,此命令

/666/*2.txt

对666/777/2.txt无效


在GitKraken中

/

是无效的,必须要带*


对文件夹下的文件进行过滤

666
666/
666/*

都有效


已经同步的文件不受过滤规则的影响,在修改后依然会被同步

不过滤特定文件

在GitKraken中
不过滤666中的2.TXT文件写法如下

/666/*
!/666/2.txt

若不加*,则不过滤命令无效

/666/
!/666/2.txt

即使设置了不过滤,也会被过滤掉
所以最佳方式为,写*


/*
!.gitignore
!*2.txt

此命令无法保护子目录下的2.txt
即使写的很具体也不行

!/*/2.txt

!/666/2.txt

上面两种方法都不行

奇怪的现象

在GitKraken中
现有666文件夹和777文件夹
666文件夹都包含了1.txt,2.txt
但是777同步了,666未同步
此时

/*
!.gitignore
!1.txt
!2.txt

只会同步777文件和根目录下的1,2.txt
而666目录不会被同步


更进一步

/*
!/666/*

不能同步666的所有文件
但是

/*
!/666/

可以,迷惑!

/*
!/666

也可以

注意

目录以/结尾

星号(*)匹配零个或多个任意字符;
[abc] 匹配任何一个列在方括号中的字符(这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c);如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配所有 0 到 9 的数字)。
问号(?)只匹配一个任意字符;

原文链接

结论

/*
!xxx

慎用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值