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