← Angular コース
89. コミットしてよいもの・いけないもの — .gitignoreの考え方
リポジトリに入れるのは「自分たちが書いたもの」だけです。node_modules(ライブラリの実体)と dist(ビルドの生成物)はコマンドで再現できるのでコミットせず、.gitignore に書いて無視します。ng new が最初から設定済みなので、普段は git status に出てこないことを確認するだけで十分です。
一方で package-lock.json は必ずコミットします。これは各ライブラリのバージョンを正確に記録した台帳で、これがあるからチーム全員の npm install が同じ結果になります。生成物に見えて消したくなりますが、消すと「自分の環境でだけ動かない」というやっかいな不具合の温床になります。
絶対に入れてはいけないのが、APIキーやパスワードなどの秘密情報です。GitHubなどに一度プッシュすると履歴に残り続け、削除コミットをしても過去の履歴からは消えません。環境ごとの秘密の値はコミット対象外のファイルや環境変数で渡し、置き場所をチームで決めておくのが実務の作法です。
サンプルコード(フレームワーク環境が必要なため表示のみ)
# ── ng new が生成する .gitignore(抜粋)──
# コンパイル結果(ビルドすれば再現できる)
/dist
/tmp
# 依存ライブラリ(npm install で再現できる)
/node_modules
# エディタやOSが勝手に作るファイル
.vscode/*
.DS_Store
# ── コミットの判断基準 ──
# コミットする : src/ のコード、package.json、package-lock.json
# コミットしない : node_modules、dist(コマンドで再現できる)
# 絶対に入れない : APIキー・パスワードなどの秘密情報
# (一度プッシュすると履歴に残り続ける)
サンプルコードで身につける(5本) →
学んだ概念を、素朴な例から実務寄りの例まで5つの具体例で確認します。
公式ドキュメントで詳しく ↗