Thank you for filling out a Git bug report! Please answer the following questions to help us understand your issue. What did you do before the bug happened? (Steps to reproduce your issue) Consider the following project structure - data - data1 - file1 - file1.txt - data2 - file2 - file2.txt - .gitignore `.gitignore` is as follows: ``` data/** !data/**/ !data/**/*.txt ``` What did you expect to happen? (Expected behavior) I expect all files in `data` folder to be ignored except `.txt` files. What happened instead? (Actual behavior) `file1` and `file2` are not ignored. Here is the `check-ignore` output: ``` $ git check-ignore -v data/data1/file1 .gitignore:2:!/data/**/ data/data1/file1 ``` What's different between what you expected and what actually happened? It seems that the behavior of `**` in gitignore is different from previous versions. Anything else you want to add: Please review the rest of the bug report below. You can delete any lines you don't wish to share. [System Info] git version: git version 2.34.0 cpu: x86_64 no commit associated with this build sizeof-long: 8 sizeof-size_t: 8 shell-path: /bin/sh uname: Linux 5.15.2-arch1-1 compiler info: gnuc: 11.1 libc info: glibc: 2.33 $SHELL (typically, interactive shell): /usr/bin/zsh [Enabled Hooks]