ToolArc

ToolArc — AIと開発のTips・比較

※記事により広告・アフィリエイトリンクを含む場合があります。

Series:サイト公開シリーズ

gitignore対象でも追跡済みファイルはgit add -uで更新できる

.gitignoreに書いたファイルでも、すでにgit管理下(追跡済み)なら変更は無視されません。git add -uで既存の追跡ファイルだけをstageする方法と、新規ファイルとの違いを実際に確認した範囲で解説します。

  • Git
  • gitignore
  • git add
  • バージョン管理
  • トラブルシューティング

.gitignore に書いたファイルなのに、変更がgitに拾われてしまう。逆に git add <path> を実行したら ignore の警告で止まった。そんな経験はないでしょうか。

原因は単純。すでに追跡(tracked)済みのファイルには .gitignore が効かないためです。この記事では、追跡済みファイルだけを更新する git add -u の使い方と、新規ファイルとの扱いの違いを整理します。

今日の結論

  • .gitignore 対象でも、すでに追跡済みのファイルは無視されず変更を記録できる
  • 通常の git add <path> が ignore 警告で止まるときは、git add -u で既存の追跡ファイルだけをstageする
  • 新規ファイルの追加はこの方法ではできない(ignoreが効くため)
  • 新規ファイルも追跡させたいときは、.gitignore の見直しか git add -f を検討する

筆者は2026年7月19日17時ごろ、運用ドキュメント更新の作業中にこの挙動を実際に確認しました。

なぜ.gitignore対象なのに追跡され続けるのか

.gitignore の役割は、まだ追跡していないファイルをgitの管理対象から外すことです。すでに git add 済み、つまり一度でもcommit履歴に載ったファイルには関与しません。

言い換えると、.gitignore は「新規ファイルの入口」を制限する仕組みであって、「既存ファイルの変更」までは止められない設計です。ここを誤解していると、「.gitignoreに書いたのに反映される」という混乱につながります。

追跡済みか、ignore対象かを確認する

対処の前に、対象ファイルが追跡済みかどうかを確認します。

git check-ignore -v <path>
git ls-files <path>
  • git check-ignore -v <path> — ignoreルールに該当するか、どのルールが効いているかを確認する
  • git ls-files <path> — すでに追跡済みかどうかを確認する(結果が表示されれば追跡済み)

両方に該当する(ignore対象かつ追跡済み)場合が、今回のケースです。

git add -u で追跡済みファイルだけをstageする

追跡済みだと分かれば、git add -u で対象ファイルをstageできます。

git add -u

git add -u は、すでに追跡しているファイルの変更・削除だけをstageするオプションです。ignore設定があっても、追跡済みという条件だけで拾われます。新規ファイルはこの操作では追加されません。ここが通常の git add . との違いです。

新規ファイルも追加したいときの選択肢

新規ファイルまで含めて管理したい場合は、git add -u では対応できません。次のどちらかを検討します。

  1. .gitignore のルールを見直し、対象パスを除外設定から外す
  2. 例外的に追跡させたいだけなら git add -f <path> で強制的に追加する

.gitignore の見直しは影響範囲が広くなりやすいため、まずは対象を絞った -f で様子を見る運用が安全です。

点検チェックリストとまとめ

チェック項目コマンド
ignore対象かを確認するgit check-ignore -v <path>
追跡済みかを確認するgit ls-files <path>
追跡済みの変更だけをstageするgit add -u
新規ファイルを例外的に追跡させるgit add -f <path>

.gitignore は新規ファイルの入口を制限するだけで、追跡済みファイルの変更までは止めません。ignoreと追跡状態を切り分けてから git add -u を使うと、意図しない反映やstage漏れを防ぎやすくなります。

サイト公開まわりの運用は、下記もあわせて確認してください。


本記事は2026年7月21日時点の情報です(git操作の実測は2026年7月19日)。gitのバージョンや設定によって細部の挙動が異なる可能性があるため、重要な操作の前は git status で状態を確認してから進めてください。