From: 美纱Misha Date: Tue, 07 Jul 2020 12:19:23 GMT Subject: Bug? of gitignore pattern matching Message-ID: In document of gitignore I found An asterisk "*" matches anything except a slash. This description well meets what if the asterisk is at the begging or in the middle of the pattern. ``` ~/Code/github/test on  master! 20:01:11 $ git check-ignore -v data/a/b/1 ~/Code/github/test on  master! 20:01:18 $ git check-ignore -v data/a/b/2 .gitignore:2:data/**/2 data/a/b/2 ~/Code/github/test on  master! 20:01:19 $ git check-ignore -v data/a/b/3 .gitignore:3:data/***/3 data/a/b/3 ~/Code/github/test on  master! 20:01:20 $ cat .gitignore data/*/1 data/**/2 data/***/3 ~/Code/github/test on  master! 20:01:21 $ vim .gitignore ~/Code/github/test on  master! 20:01:46 $ git check-ignore -v a/b/3 .gitignore:3:***/3 a/b/3 ~/Code/github/test on  master! 20:01:51 $ git check-ignore -v a/b/2 .gitignore:2:**/2 a/b/2 ~/Code/github/test on  master! 20:01:53 $ git check-ignore -v a/b/1 ~/Code/github/test on  master! 20:01:54 $ cat .gitignore */1 **/2 ***/3 ``` ``` ~/Code/github/test on  master! 20:00:13 $ git check-ignore -v data/1/a/b .gitignore:1:data/1/* data/1/a/b ~/Code/github/test on  master! 20:00:22 $ git check-ignore -v data/2/a/b .gitignore:2:data/2/** data/2/a/b ~/Code/github/test on  master! 20:00:25 $ git check-ignore -v data/3/a/b .gitignore:3:data/3/*** data/3/a/b ~/Code/github/test on  master! 20:00:26 $ cat .gitignore data/1/* data/2/** data/3/*** ``` But if this asterisk is at the end of the ignore pattern. Seems that "*" equals to "**" ----- And there is another question Other consecutive asterisks are considered regular asterisks and will match according to the previous rules. And it seems that triple asterisks act like double ones. What do regular asterisks mean, I used to believe they work as a single asterisk before testing. Maybe there is some ambiguity? Best, Yanxiang Gao