我試圖忽略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