.gitignore的路径匹配规则
在 .gitignore 中,路径中的 / 会极大地影响它所匹配的目标。
首先,需要看路径结尾是否为 /:
- 结尾不为
/:匹配文件和目录 - 结尾为
/:只匹配目录
接着,需要看路径是否开头为 / 或中间包含 /:
- 开头不是
/且中间不包含/:以当前.gitignore所在目录及其任意子目录作为匹配的起点。- 比如,
my-path既可以匹配my-path,也可以匹配also/my-path。
- 比如,
- 开头是
/或中间包含/:只以当前.gitignore所在目录作为匹配的起点。- 比如,
/my-path只匹配my-path,不匹配not/my-path。 - 比如,
my/path只匹配my/path,不匹配not/my/path。
- 比如,
如果一条路径显式地以 **/ 或 /**/ 开头,它仍然只以当前 .gitignore 所在目录作为匹配的起点,但 **/ 可以是任意子目录。
为了帮助记忆,可以把它近似理解成下面的流程:
- 如果开头是
/,直接保留原样,否则转到步骤 2 - 如果中间包含
/,在开头加上/,否则转到步骤 3 - 在开头加上
/**/
也就是说,
/my/path->/my/path/my/path/->/my/path/my/path->/my/pathmy/path/->/my/path//**/my-path->/**/my-path/**/my-path/->/**/my-path/**/my-path->/**/my-path**/my-path/->/**/my-path/my-path->/**/my-pathmy-path/->/**/my-path/
.gitignore的路径匹配规则
https://tomzhu.site/2026/07/19/gitignore的路径匹配规则/