GitHub for Mac と Git コマンドで .gitignore の挙動が異なる件について (聞いてみた)
Git は、1.8.4 から .gitignore に /**/ のようなパターンを書けるようになっています (正式にサポートされたようです)。
Uses of the platform fnmatch(3) function (many places in the code,
https://github.com/git/git/blob/maint/Documentation/RelNotes/1.8.4.txt
matching pathspec, .gitignore and .gitattributes to name a few)
have been replaced with wildmatch, allowing "foo/**/bar" that would
match foo/bar, foo/a/bar, foo/a/b/bar, etc.
foo/**/bar
は、
foo/bar
(←注目)foo/a/bar
foo/a/b/bar
にマッチします。
/**/
の部分が無い場合 (foo 直下に bar がある場合) にもマッチする仕様です。
ところが GitHub for Mac (2014/04/22 リリース版 Your Hogward Eyes) だと、
foo/a/bar
foo/a/b/bar
にしかマッチしません。GitHub for Mac にバンドルされている git コマンドのバージョンは、
$ /Applications/GitHub.app/Contents/Resources/git/bin/git --version git version 1.8.4
で 1.8.4 と互換性がありそうなのですが…。
issue トラッカーがないので、メールフォームで聞いてみたところ、内部で使っている libgit2 が未対応とのことでした。
そのうち直りそう。