我试图忽略quickfix子目录中的所有.o文件。该文件是:quickfix子目录中的gitignore .o文件
quickfix/examples/executor/C++/Application.o
我曾尝试以下:
**/quickfix/**o
quickfix/*o
quickfix/**/*o
编辑:一种选择是一个的.gitignore文件添加到的quickfix子目录带*的.o模式。有谁知道为什么上述模式不起作用?
我试图忽略quickfix子目录中的所有.o文件。该文件是:quickfix子目录中的gitignore .o文件
quickfix/examples/executor/C++/Application.o
我曾尝试以下:
**/quickfix/**o
quickfix/*o
quickfix/**/*o
编辑:一种选择是一个的.gitignore文件添加到的quickfix子目录带*的.o模式。有谁知道为什么上述模式不起作用?
gitignore
手册页指定模式如何匹配。相关规则,你的情况是:
混帐与FNM_PATHNAME标志对待模式为适合于通过的fnmatch(3)消费壳水珠:在模式通配符不匹配/的路径名。
所以,quickfix/*o
不起作用,因为*
将不匹配/
。并且**
根本不被fnmatch
识别,因此也不被Git识别。
在quickfix目录中创建一个新的.gitignore,其中包含*.o
。这将适用于quickfix目录及其所有子目录。
编辑:一个选项是添加一个.gitignore文件到* .o模式的quickfix子目录。有谁知道为什么上述模式不起作用?
凯文巴拉德的评论,以及米帕迪的回答很好地解释它。
解决我的问题 - 有谁知道为什么模式不工作,但? – Taras 2011-12-30 03:39:30
@Taras:因为git不支持'**'glob扩展,如果没有这个扩展,就没有办法表达你想要的东西。 – 2011-12-30 03:52:30
嗯。 gitignore(5)没有提及双星的任何特殊含义,尽管存在 - 看似有缺陷的网站 - 声称它做了某事。毕竟,gitignore(5)比较清楚,它的通配符是根据fnmatch(3)规则解释的,而不是zsh/rsync-style。 – 2011-12-30 06:08:06