gitignore соответствия повторений символов - PullRequest
1 голос
/ 18 июля 2011

У меня есть каталог в репозитории git с некоторыми файлами, назовем его matchdir:

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

Я хочу добавить файлы, которые соответствуют 40 шестнадцатеричным символам, в мой файл .gitignore,Что-то вроде matchdir/[0-9a-f]{32}, но, похоже, это не работает.Есть ли способ сопоставить определенное количество повторений символа в файле .gitignore?

Ответы [ 2 ]

4 голосов
/ 18 июля 2011
matchdir/????????????????????????????????????????

Будет соответствовать всем файлам ровно 40 букв. Это не только шестнадцатеричные буквы, но лучше, чем matchdir/*, который будет соответствовать любой длине. Нажатие на 40 ? занимает всего 3 нажатия клавиш в emacs: 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 голос
/ 18 июля 2011

Не точное совпадение, но если это единственные файлы без расширения и нет подкаталогов, обходной путь может быть следующим:

matchdir/*
!matchdir/*.*

Игнорировать все файлы, затем игнорировать те, которые отмечены точкой.

...