everywhere.Gitの.gitignoreでサブディレクトリのファイルを除外するところでハマった2012-12-14Gitでバージョン管理したくないファイルを指定する場合には、.gitignoreファイルを作成し、その中に除外パターンを書く。*.swp._*.DS_Storenode_modulesrelease.sass-cacheこういう感じ。その.gitignoreファイルからみた除外したいパターンのパスを書く。Gitのドキュメントから引用すると、下記のようなパターンで除外ファイルを指定できる。こちらから日本語訳として引用。無視しませんで、ハマったところ今回はプロジェクトにおいて除外したい特定ファイルがある。対処のディレクトリは下記のような構成になっており、projects/templates/projects/templates/pages/foo.htmlprojects/templates/pages/foo.jsprojects/templates/pages/mypage/bar.jsprojects/.gitignoretemplates/以下の.jsを無視したい、というのをやりたかった。このとおり、templates/以下に展開するサブディレクトリのパターンは様々。ルートには、そのプロジェクトディレクトリとしての.gitignoreがあり、その中には.DS_Storeなどの定番の除外パターンを書いてある。このルートにある.gitignoreに対し、下記のようなパターンを書いた。templates/**/*.jsこれによって、各階層が異なるサブディレクトリも対象とて、その中のjsファイルを除外するというができると思ったが、だめだった。これによって除外されるのは、templates/pages/foo.jsだけ、となる。階層ごとに、templates/*.jstemplates/**/*.jstemplates/**/**/*.jsみたいに書く、というのは全然よろしくない。思ったところで、鶏ハムの人に助言をもらい、templates/に.gitignoreを追加した。下記を記述*.jsするとどうでしょう、理想通り、templates/以下のjsファイルが除外されましたとさ。下記を記述/*.jsということになりますかね。SpeakerBY-NC-SA。