.gitignore と .gitignore_global の分け方
(If you aren’t interested in my posts written in Japanese, please subscribe to the “English” feed.)
Git のレポジトリーの中の .gitignore
というのは、レポジトリーにコミットしない(無視する)ファイルを定義するものです。
Git のバージョン管理システムでは、二つの gitignore ファイルがあります。一つ目の一番知られてるのはレポジトリー内の。こちらは、プロジェクトのルートダイレクトリーに置かれて、そのプロジェクトに対する無視するファイルなど定義されています。
一方、デフォルトで全てのプロジェクトに適用する gitignore ファイルも 設定できます。「グローバル gitignore」と呼びます。
ターミナルで、下記のコマンドを打って
$ git config --global core.excludesfile ~/.gitignore_global
~/.gitignore_global
のファイルに全てのプロジェクトに適用する gitignore コンテンツを入力します(ファイルが存在しない場合は作成する)。
こちらの使い分けについてですが、基本的には
- プロジェクト内 gitignore ⇒ プロジェクトと直接関する定義。例えば、ビルドで作られるテンポラリーファイル、テスト時の自動で生成されるキャッシュファイル、ログファイルなど。
- グローバル gitignore ⇒ 当ローカル環境に関する定義。例えば、 OS X なら
.DS_Store
のファイルなど、 vim が作る*.swp
のファイルなど。
.DS_Store
や *.swp
の定義をプロジェクト内の gitignore に入れるケースも少なくはないと思いますが、こちらは間違っています。一人一人開発環境が違うので、責任を持って自分の開発環境の無視するべきファイルをグローバル gitignore に定義した方が良いでしょう。