【これだけで大丈夫】.gitignore チートシート

f:id:Naotsugu:20200121230500p:plain

リポジトリで管理したくないファイル(or ディレクトリ) は.gitignore に定義することで git add 実行時にインデックスに追加されなくなる。

指定 除外対象
foo.txt 配下のサブディレクトリのどこかにある foo.txt ファイル(or ディレクトリ)
/foo.txt 現在のディレクトリにある foo.txt ファイル(or ディレクトリ)
foo/ 配下のサブディレクトリのどこかにある foo ディレクトリ
/foo/ 現在のディレクトリにある foo ディレクトリ(とその配下)
/foo/bar 現在のディレクトリにある foo の中の bar ファイル(orディレクトリ)
*.txt 配下のサブディレクトリのどこかにある拡張子 txt のファイル
!foo.txt *.txt が除外されていた場合、foo.txt を除外しない
/foo/* 現在のディレクトリにある foo ディレクトリ配下(!/boo/bar.txt と合わせることで boo/bar.txt だけは含めることができる。/foo/ と指定した場合はディレクトリ自体が無視されるため boo/bar.txt も除外される)
foo.tx? 配下のサブディレクトリのどこかにある拡張子が tx で始まるファイル(1文字のワイルドカード)
/foo/**/bar/ 現在のディレクトリにある foo ディレクトリ配下の任意階層の bar ディレクトリ(Git 1.8.2以降)
/foo[1-9].txt 現在のディレクトリにある foo1.txt から foo9.txt ファイル(or ディレクトリ)
/foo\!.txt 現在のディレクトリにある foo!.txt ファイル(\でエスケープ)
  • 先頭を / で始めると .gitignore のあるディレクトリからの相対パス
  • 末尾が / の場合はディレクトリとして解釈される
  • コメント行は # で始める
  • ディレクトリ階層毎に複数配置可能で、階層の深いものが後から解釈される
  • git add した後で .gitignore に追加しても自動で消えはしない(git rm --cached <FILE> で消す)