gitignore匹配字符重复

时间:2011-07-17 21:04:27

标签: git gitignore

我在git存储库中有一个目录,其中包含一些文件,我们称之为matchdir

$ ls matchdir
2fd4e1c67a2d28fced849ee1bb76e7391b93eb12
da39a3ee5e6b4b0d3255bfef95601890afd80709
file.py
someotherfile.txt

我想将匹配40个十六进制字符的文件添加到我的.gitignore文件中。像matchdir/[0-9a-f]{32}这样的东西,但似乎不起作用。有没有办法匹配.gitignore文件中特定数量的字符重复?

2 个答案:

答案 0 :(得分:4)

matchdir/????????????????????????????????????????

将所有文件与40个字母匹配。这不仅是十六进制字母,而且比任何长度都匹配的matchdir/*更好。在emacs下键入40 ?只需要3次击键: C-4 C-0

如果您只想捕获十六进制数字,现在可以轻松搜索? [0-9a-f]

matchdir/[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]

答案 1 :(得分:1)

不完全匹配,但如果这些是没有扩展名且没有子目录的唯一文件,则可能是这样的解决方法:

matchdir/*
!matchdir/*.*

忽略所有文件,然后取消带点的文件。