我试图忽略一些作为作业日志输出的目录。
ls -l
drwxr-xr-x 4 user CHARLES\Domain Users 128 Sep 12 21:36 337c6c86-d49b-43cf-89ac-35c110ec6412
cat .gitignore
^[0-9a-z]+-[0-9a-z]+-[0-9a-z]+-[0-9a-z]+-[0-9a-z]+/$
^[0-9a-z]+-[0-9a-z]+-[0-9a-z]+-[0-9a-z]+-[0-9a-z]+$
但是git一直拒绝忽略它。
git忽略有关正则表达式模式的一些特殊规则吗?
谢谢!
编辑
感谢蒂姆建议澄清:
上面显示的是一个最小的可复制示例,其中git repo有一个名为337c6c86-d49b-43cf-89ac-35c110ec6412
的子目录。
然后,.gitignore
文件的内容将显示为cat
。
答案 0 :(得分:2)
.gitignore
仅遵循 glob 表达式;它没有正则表达式语法。
在全局格式中,您的选择是:
[
:一组字符:恰好匹配一个这样的字符?
:匹配任何字符(但总是一个正则表达式中的la .
)*
:匹配零个或多个字符这些基于每个组件应用。总是暗示着锚定(^
和$
:a?c
与名称aac
和abc
匹配,但从不匹配abcd
或dabc
(如果您包含斜杠,Git的规则会变得更加复杂,例如**
可以匹配任意数量的子组件;但是现在就避免使用它。)
只要您的姓名固定长度且字符为十六进制(在[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]
(我通过输入您的示例并使用
s/[0-9a-f]/[0-9a-f]/g
作为编辑器命令,例如sed或vi)。