.gitignore考虑文件中的以下两种模式
foo/*
foo/**
Run Code Online (Sandbox Code Playgroud)
模式格式规范指出:
星号
*可以匹配除斜杠之外的任何内容。[...]
尾随
/**匹配里面的所有内容。例如,abc/**匹配 目录 内的所有文件abc(相对于 .gitignore 文件的位置),具有无限深度。
当在斜杠之后直接在模式末尾使用时,这对我来说听起来是同样的事情。我确实测试了一些案例 - 有或没有下面的子目录foo以及各种否定模式 - 并且没有观察到任何差异。
有没有一种情况会让人做出/**选择/*?
起初,我期望看到一个具有如下模式的用例,但没有,因为这两种模式都会忽略内部的所有内容,并且规范还表示“[...]不可能重新包含一个文件(如果该文件的父目录被排除)[...]”
foo/*
!foo/a/b/c/file.txt
foo/**
!foo/a/b/c/file.txt
Run Code Online (Sandbox Code Playgroud)