`.gitignore` ファイルとは?
.gitignore ファイルは、どのファイルやディレクトリを追跡対象外のままにするかを Git に伝え、build output・依存関係・シークレットをリポジトリの外に保ちます。
.gitignore ファイルは、Git が追跡すべきでないファイルのパターンを列挙することで、リポジトリを整頓された状態に保ちます。build の artifact、インストールされた依存関係、ローカルの設定、シークレットはバージョン管理に属さず、.gitignore はそれらを status に常時表示させることなく除外する手段です。
`.gitignore` がすること
.gitignore の各行はパターンです。パターンに一致するファイルは無視されます。Git はそれらを追跡せず、追跡対象外としても表示しません。これにより、生成されたファイルやマシン固有のファイルがリポジトリを散らかしたり、誤ってコミットされたりするのを防ぎます。
よくあるパターン
一般的なファイルは、依存関係のフォルダ、build output、環境ファイルを無視します。
node_modules/
dist/
.env
*.log何を無視すべきか
よい候補は、生成される・ダウンロードできる・ローカルなもの、すなわち依存関係のディレクトリ、コンパイル済みの output、キャッシュ、エディタの設定、そして特にシークレットファイルです。重要なルールは認証情報を決してコミットしないことであり、.env ファイルを無視することは、それらの漏洩に対する第一の防御線です。
`.gitignore` と CI/CD
CI は依存関係をインストールし build output を新たに生成するので、それらはコミットせず無視すべきです。より小さくクリーンなリポジトリは、ジョブごとにより速くクローンできます。決定的に重要なのは、シークレットを Git の外に保つことで、CI がそれらを checkout されたコードからではなく、安全なストアから取得するようになる点です。
gitignore のヒント
- CI が再生成する依存関係と build output を無視しましょう。
- シークレットファイルと環境ファイルは常に無視しましょう。
- 言語ごとのテンプレートを出発点として使いましょう。
- 無視ルールは、すでにコミットされたファイルの追跡を解除しないことに注意しましょう。
重要なポイント
.gitignoreファイルは、Git が追跡すべきでないファイルのパターンを列挙します。- 生成される output、依存関係、そして特にシークレットを無視しましょう。
- クリーンなリポジトリは CI でより速くクローンでき、認証情報をコードの外に保ちます。