2011-12-30 11 views
2

quickfixサブディレクトリ内のすべての.oファイルを無視しようとしています。ファイルには、次のとおりです。quickfixサブディレクトリ内のgitignore .oファイル

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

EDIT:1のオプションは、* .oのパターンでのQuickFixサブディレクトリに.gitignoreファイルを追加することです

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

私は、次の試してみました。誰も上記のパターンがうまくいかない理由を知っていますか?

+0

Hm。 gitignore(5)には二重星の特別な意味は書かれていませんが、何かをしていると主張するウェブサイトは一見誤りです。結局のところ、gitignore(5)は、そのワイルドカードがzsh/rsync形式ではなく、fnmatch(3)の規則に従って解釈されるという点ではっきりしています。 –

答えて

2

gitignoreマニュアルページでは、パターンの一致方法を指定します。あなたのケースに関連する規則がある:

GitはFNM_PATHNAMEフラグとのfnmatch(3)による消費に適したシェルグロブとしてパターンを扱う:パターン内のワイルドカードは、パス名に/と一致しないであろう。

*/とは一致しませんので、だから、quickfix/*oは動作しません。 **fnmatchで認識されないため、Gitにも認識されません。

5

クイックフィックスディレクトリに新しい.gitignoreを*.oとします。これはquickfixディレクトリとそのすべての子に適用されます。

EDIT:* .oパターンのquickfixサブディレクトリに.gitignoreファイルを追加する方法もあります。誰も上記のパターンがうまくいかない理由を知っていますか?

ケビン・バラードのコメント、ミパディの答えがうまく説明されています。

+0

私の問題を解決します - なぜパターンがうまくいかないのか誰にも分かりますか? – Taras

+2

@Taras:gitは '**' glob拡張子をサポートしていないので、あなたが望むものを表現する方法がありません。 –

関連する問題