無視ファイル(.gitignore)

この記事の所要時間: 約3分

無視ファイル(.gitignore)に関するメモなど。

結論から言うと

ルートに .gitignore ファイルを作成し、中にいろいろ書けば良い。

以下を参考にする。
Git – 変更内容のリポジトリへの記録

…ん?

ところがちょっとつまづいたところがあった。

このようなフォルダ構成のとき…

Gitルート
├.gitignore
├フォルダ1
│  ├フォルダ1-1  ←この配下を全部無視したい
│  │  ├フォルダ1-1-1
│  │  │  ├フォルダ1-1-1-1
│  │  │  │ └ファイル
│  │  │  └ファイル
│  │  ├フォルダ1-1-2
│  │  │  └ファイル
│  │  └ファイル
│  └フォルダ1-2
└フォルダ2
    └フォルダ2-1

こんな風に書いてみたり、

.gitignore
フォルダ1/フォルダ1-1/

はたまたこんな風に書いてみたり、

.gitignore
フォルダ1/フォルダ1-1/**/

もしかしてと思いこんな風に書いてみたり、

.gitignore
フォルダ1/フォルダ1-1/**/*

いろいろやってみたけど、.gitignore はうまく無視扱いされるものの、フォルダ1-1 配下がうまく無視されてくれない。フォルダ1-1 直下、もしくはその一つ下のフォルダくらいまでは無視されるけど、それよりも深い階層にあるやつが無視されないような感じ。

そこでいろいろ調べた結果…

ルートではなく、フォルダ1 直下に .gitignore を置くことで解決!

Gitルート
├フォルダ1
│  ├.gitignore
│  ├フォルダ1-1
│  │  ├フォルダ1-1-1
│  │  │  ├フォルダ1-1-1-1
│  │  │  │ └ファイル
│  │  │  └ファイル
│  │  ├フォルダ1-1-2
│  │  │  └ファイル
│  │  └ファイル
│  └フォルダ1-2
└フォルダ2
    └フォルダ2-1

ファイルの中身はこんな感じ。

.gitignore
フォルダ1-1/

参考: Gitの.gitignoreでサブディレクトリのファイルを除外するところでハマった(Internet Archive)