在 Git 中,如何忽略名称以 `.foo.XXXX` 结尾的所有文件,其中 XXXX 是任何 "normal" 文件扩展名?
In Git, how to ignore all files whose name ends with `.foo.XXXX` where XXXX is any "normal" file name extension?
放
syntax:regexp
*.foo.[a-z]{1,4}
在 .gitignore
中不起作用。我记得看过
syntax:glob
和
syntax:regexp
前段时间在一些 .gitignore
文件中,但我无法在 Git 手册中归档此类语法。有没有办法在 .gitignore
中使用常规正则表达式?
如果不使用任何可能受支持或不受支持的正则表达式语法(我也没有看到任何证据),您可以使用四个规则获得相同的行为:
*.foo.[a-z]
*.foo.[a-z][a-z]
*.foo.[a-z][a-z][a-z]
*.foo.[a-z][a-z][a-z][a-z]
如果您想稍作妥协,可以使用 *.foo.?*
(任何以 foo 结尾、一个点和至少一个字符)或 *.foo.[a-z]*
(任何以 foo 结尾然后以字母开头的扩展名)。
你在混淆 .hgignore
with .gitignore
。
没有"normal file name extension"这样的东西;您首先可以做的是添加以下内容:
**/foo.*
**/
将匹配所有目录中的 foo.*
。
.gitignore
使用 shell glob syntax:
Git treats the pattern as a shell glob suitable for consumption by
fnmatch(3) with the FNM_PATHNAME flag: wildcards in the pattern will
not match a / in the pathname.
放
syntax:regexp
*.foo.[a-z]{1,4}
在 .gitignore
中不起作用。我记得看过
syntax:glob
和
syntax:regexp
前段时间在一些 .gitignore
文件中,但我无法在 Git 手册中归档此类语法。有没有办法在 .gitignore
中使用常规正则表达式?
如果不使用任何可能受支持或不受支持的正则表达式语法(我也没有看到任何证据),您可以使用四个规则获得相同的行为:
*.foo.[a-z]
*.foo.[a-z][a-z]
*.foo.[a-z][a-z][a-z]
*.foo.[a-z][a-z][a-z][a-z]
如果您想稍作妥协,可以使用 *.foo.?*
(任何以 foo 结尾、一个点和至少一个字符)或 *.foo.[a-z]*
(任何以 foo 结尾然后以字母开头的扩展名)。
你在混淆 .hgignore
with .gitignore
。
没有"normal file name extension"这样的东西;您首先可以做的是添加以下内容:
**/foo.*
**/
将匹配所有目录中的 foo.*
。
.gitignore
使用 shell glob syntax:
Git treats the pattern as a shell glob suitable for consumption by fnmatch(3) with the FNM_PATHNAME flag: wildcards in the pattern will not match a / in the pathname.