git 存在するファイルを監視対象から外したい

アップ済みのファイルを削除せずに「.gitignore」に追加して監視対象から外したい

作成日:2025-07-07, 更新日:2025-07-07

基本

  1. 「.gitignore」に対象となるファイルを追加
  2. コンソールから「# git rm --cached html/●●●.php」を実行 ← キャッシュのみ削除

masterブランチ、developブランチでの対応

現状

本番環境はmasterブランチ。テスト環境でdevelopブランチ。
ただし、DBや各接続情報はdevelopブランチで書き換えを行うが、コミットはしない。
機能の改修や実装をしたときはDBや各接続情報以外のみコミット+プッシュ...という面倒なやり方が行われている

要望

developブランチで修正したファイル一覧に「DBや各接続情報」がいつまでも存在する...というのを解消したい

問題点

  • DBや各接続情報
    • masterブランチで存在する
    • developブランチで修正しているがコミットしていない
  • 「.gitignore」に追加しても存在するファイルなので監視対象から外れない
  • 最新ソースはmaster。developは最新かは不明

対策案

  • DBや各接続情報を記載したファイル
    • 実体は残す
    • 監視対象から外す
    • 「.sample」のような雛形ファイルを追加。接続情報はテスト環境の内容にしておきたい

フロー

  1. developブランチ: 接続情報をコミット+プッシュ。接続情報を監視対象から外す+実体は残す
  2. masterブランチ: 接続情報を監視対象から外す+実体は残す
  3. developブランチをmasterブランチと同じにする ← 接続情報以外が同じになる
  4. developブランチに「.sample」のような雛形ファイルを追加
  5. masterブランチをdevelopブランチと同じにする ← テスト環境の接続情報が記載された雛形が作られる

対策: 実行

  1. developブランチにチェックアウト
    1. 「.gitignore」に対象となるファイルを追加
    2. 「.gitignore」に対象となるファイルを複製。すべて「.sample」を追加
    3. コミット+プッシュ
    4. コンソールから「# git rm --cached html/●●●.php」を実行。キャッシュのみ削除
  2. masterブランチにチェックアウト
    1. 「.gitignore」に対象となるファイルを追加
    2. コミット+プッシュ
    3. コンソールから「# git rm --cached html/●●●.php」を実行。キャッシュのみ削除
  3. developブランチにチェックアウト
    1. masterブランチをマージ → developブランチはmasterブランチと同じになる
    2. 対象となるファイルを複製してファイル名に「.sample」を追加
    3. コミット+プッシュ
  4. masterブランチにチェックアウト
    1. developブランチをマージ → masterブランチに「.sample」が増える