Git 忽略:如何匹配一位或多位数字

Git ignore: How to match one or more digits

我想确保 git 忽略任何轮流创建的日志文件。例如

debug.log
debug.log.1
debug.log.2
debug.log.10

应该全部忽略。我目前正在使用 *.log*.log.[0-9] 来忽略列表中的前 3 个。要捕获第三个,我知道我可以使用 *.log.[0-9][0-9]。但是,我更愿意找到一种可以捕获所有这些的单行解决方案。

有没有办法告诉git忽略文件匹配一个或多个digits?

遗憾的是 .gitigore 使用 glob 而不是正则表达式进行匹配,这意味着没有好的方法。

Otherwise, Git treats the pattern as a shell glob suitable for consumption by fnmatch(3) with the FNM_PATHNAME flag ...

当然可以使用:

*.log.[0-9]*

但请注意,这也会匹配 debug.log.9abc 之类的内容。如果您对此表示满意,我认为这种模式就足够了。

如果您真的必须严格执行,是的,您必须将它们全部列出:

*.log
*.log.[0-9]
*.log.[0-9][0-9]
*.log.[0-9][0-9][0-9]
# ... And so on if needed.