What's .gitignore?
教科書的にいうと、.gitignoreとは、Gitリポジトリにおいて、意図的に追跡対象から外したい(無視したい)ファイルを設定するためのファイルです。
Simple Guideline
以下のファイルをGitで追跡対象にします。
- プロジェクトのソースコード
- ビルドファイル(Makefile, Rakefile, build.xml等)
- ドキュメント
- アプリケーションのリソース(画像等)
- テストコード
- 設定ファイルのテンプレート(not 設定ファイル)
なぜ設定ファイル自体は追跡しないかというと、設定ファイル自体はメンバー固有のものだからです。(各メンバーで項目が違うものを追跡して逐一pushしていたら、毎回conflictを起こしてしまい、メンバーから顰蹙を買うことになるでしょう。。。)
リポジトリにそのコードを含めるかどうか気になったら、以下の問に答えてみるといいでしょう。*「XXXがなかったら、このプロジェクトで自分の作業ができるだろうか?」*もし、「できない」のであれば、XXXをリポジトリに含めるようにしてみましょう。
.gitignore Templates
GitHubから、様々なプログラミング言語やフレームワークに対する.gitignoreのテンプレートファイルが提供されています。以下をベースにして、気づいたところをカスタマイズしていくようにすると良いと思います。
もし、既に追跡対象にしてしまっているファイルを無視したい場合は、git rm --cached
でファイルを追跡対象から外して、そのファイルを.gitignoreに加えればよいでしょう。.gitignoreを更新したら、commitしないと反映されないことに注意です。
以上はあくまでも、方向性としてそんな感じですよ、という話です。具体的なプラクティスについては、ぜひ教えてください!