Git ignore:如何匹配一个或多个数字

时间:2015-08-28 02:24:35

标签: regex git gitignore

我想确保git忽略在轮换基础上创建的任何日志文件。例如

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

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

有没有办法告诉gitignore文件匹配一个或多个数字?

1 个答案:

答案 0 :(得分:9)

可悲的是.gitigore使用glob代替正则表达式进行匹配,这意味着这不是一个好方法。

  

否则,Git将模式视为适合fnmatch(3)使用FNM_PATHNAME标志消耗的shell glob ...

当然你可以使用:

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