.gitignore中./的含义及无法匹配目录的技术咨询
.gitignore中行首
./的问题解析 核心结论
行首的./是错误写法,它会让Git试图匹配一个名为.的文件夹下的路径,但.在文件系统中仅代表当前目录,并非真实存在的实体文件夹,因此这类规则根本匹配不到目标路径,自然无法生效。
具体规则对比
失效规则:
./cdk/node_modules/
Git会将其解析为「当前.gitignore所在目录下,名为.的文件夹里的cdk/node_modules/」,但系统中不存在名为.的文件夹,所以规则完全不生效。有效规则1:
cdk/node_modules/
这是相对路径规则,匹配当前.gitignore所在目录下直接子目录cdk中的node_modules文件夹,符合Git的路径匹配逻辑。有效规则2:
/cdk/node_modules/
这是仓库根目录相对的绝对路径规则,精准匹配仓库根目录下的cdk/node_modules/文件夹,优先级更高,不会匹配子目录中的同名路径。
关于官方文档未提及的原因
./行首的写法属于路径解析的错误用法,Git的路径匹配基于标准文件系统路径规则,.作为当前目录的符号,在路径开头添加./属于冗余且错误的操作,因此官方文档不会专门针对这类错误写法做说明。
内容的提问来源于stack exchange,提问作者astef
相关产品推荐
相关产品推荐

