2013-03-28 12 views
31

ファイル.gitignoreに拡張正規表現(ERE)を使用する方法はありますか?たとえば、.gitignoreファイルで+の繰り返し文字を使用したいとします。それを行う方法はありますか?.gitignoreの拡張正規表現(ERE)

答えて

27

hereで示され、「this question」に詳述されているように、関数fnmatch()はグロブパターンを解釈するために使用されます。つまり、正規表現はサポートされていません。

これはgitignore man pageは言及するものである:

そうでない場合は、FNM_PATHNAMEフラグをgit treats the pattern as a shell glob suitable for consumption by fnmatch(3):パターン内のワイルドカードは、パス名に/と一致しなくなります。
たとえば、「Documentation/*.html」は「Documentation/git.html」に一致しますが、「Documentation/ppc/ppc.html」または「tools/perf/Documentation/perf.html」には一致しません。

グロブパターンと正規表現の対応は、thosequestionsです。

8

.gitignore(およびその他の)ファイルは、正規表現ではなくファイル名グロブを使用します。

gitのハッカーにこれを納得させることは非常に疑問です。今はあまりにも深遠で、globはファイル名のマッチャーとしてもっと馴染みがあります。

+10

これは残念です。そのような便利な機能はそうである可能性があります。 –

+3

@ArturBarseghyan、Mercurialを考えてみてください。それは、そのすっきりした機能と他の多くのクールな機能も備えています。 – toriningen

+0

@modchan:それはMercurialに存在し、私はそれをたくさん使っていることを知っています。とにかくコメントしてくれてありがとう。 –