2011-12-30 93 views
2

我試圖忽略quickfix子目錄中的所有.o文件。該文件是:quickfix子目錄中的gitignore .o文件

quickfix/examples/executor/C++/Application.o 

我曾嘗試以下:

**/quickfix/**o 
quickfix/*o  
quickfix/**/*o 

編輯:一種選擇是一個的.gitignore文件添加到的quickfix子目錄帶*的.o模式。有誰知道爲什麼上述模式不起作用?

+0

嗯。 gitignore(5)沒有提及雙星的任何特殊含義,儘管存在 - 看似有缺陷的網站 - 聲稱它做了某事。畢竟,gitignore(5)比較清楚,它的通配符是根據fnmatch(3)規則解釋的,而不是zsh/rsync-style。 – 2011-12-30 06:08:06

回答

2

gitignore手冊頁指定模式如何匹配。相關規則,你的情況是:

混帳與FNM_PATHNAME標誌對待模式爲適合於通過的fnmatch(3)消費殼水珠:在模式通配符不匹配/的路徑名。

所以,quickfix/*o不起作用,因爲*將不匹配/。並且**根本不被fnmatch識別,因此也不被Git識別。

5

在quickfix目錄中創建一個新的.gitignore,其中包含*.o。這將適用於quickfix目錄及其所有子目錄。

編輯:一個選項是添加一個.gitignore文件到* .o模式的quickfix子目錄。有誰知道爲什麼上述模式不起作用?

凱文巴拉德的評論,以及米帕迪的回答很好地解釋它。

+0

解決我的問題 - 有誰知道爲什麼模式不工作,但? – Taras 2011-12-30 03:39:30

+2

@Taras:因爲git不支持'**'glob擴展,如果沒有這個擴展,就沒有辦法表達你想要的東西。 – 2011-12-30 03:52:30