小编blu*_*r4y的帖子

.gitignore 文件中的单个 /* 和双 /** 尾随星号有什么区别?

.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)

git gitignore fnmatch

6
推荐指数
1
解决办法
1287
查看次数

标签 统计

fnmatch ×1

git ×1

gitignore ×1