入門 なし 約7分

AI が変更したコードを Git で確認する

AI がコードを変更した場面で、ブランチ、差分確認、git restore、.gitignore を使って安全に取り込む流れを整理するガイド。

AI にコード生成を頼むと、数秒で大量のファイルが書き換わることがあります。便利な反面、何が変わったのか把握しないまま commit すると、意図しない変更や不要なファイルが履歴に残ります。

AI を使う場面で、Git の基本動作をどう活かすかを整理します。特定のツールの操作説明ではなく、どの AI を使っても共通する確認の流れです。

AI がコードを変えたとき、何が起きるか

AI にまとめて依頼すると、次のようなことが起こり得ます。

  • 頼んだファイル以外も書き換わっている
  • 不要な import やコメントが追加されている
  • .env や設定ファイルに値が埋め込まれている
  • 動くけれど、自分が意図した構成と違う

どれも「AI が間違っている」とは限りません。ただ、そのまま commit して先に進むと、あとから「いつこの変更が入ったのか」を追えなくなります。Git のコマンドで差分を確認してから取り込む習慣があれば、この問題はほぼ防げます。

大きい依頼の前にブランチを切る

AI に「ファイルを3つ作って」「テストも書いて」のような大きめの依頼をする前に、ブランチを作っておきます。

git switch -c ai-add-feature

ブランチを切っておけば、結果が気に入らなかったときに main に戻るだけで元の状態に復帰できます。AI の出力をすべて受け入れるか、やり直すかを、あとから安全に選べます。

ブランチの作り方と merge の流れは「ブランチで安全に試す」の回で扱いました。AI を使う場面でも同じ操作です。

作業前にきれいな状態を確認する

AI に依頼する前に git status を実行して、未コミットの変更がないことを確認します。

git status
On branch ai-add-feature
nothing to commit, working tree clean

working tree clean の状態から始めると、AI が加えた変更だけが差分として見えます。手作業の変更と AI の変更が混ざっていると、あとから「どれが AI の変更か」を区別できません。

自分の変更が残っている場合は、先に commit するか、不要なら git restore で戻してから AI に依頼します。

変更後に差分を読む

AI がコードを変更したら、commit する前に3つのコマンドで状態を確認します。

git status — 何が変わったか

git status

変更されたファイルの一覧が表示されます。頼んでいないファイルが modifiedUntracked files に出ていないか確認します。

git diff — どう変わったか

git diff

ファイルごとの差分が表示されます。追加行(+)と削除行(-)を見て、自分が依頼した内容と合っているか確認します。差分が多いときは、ファイルを指定して絞り込めます。

git diff memo.txt

git log — 直前にどこまで進んでいたか

git log --oneline -5

直近5件の履歴を確認します。AI に依頼する前の commit が最新であれば、そこから先がすべて AI の変更です。

この3つはどれも「CLI で Git の状態を読む」の回で扱った操作と同じです。AI の場面だからといって特別なコマンドが要るわけではありません。

1回の依頼を1テーマに絞る

AI に「機能Aを追加して、ついでに機能Bもリファクタリングして」と頼むと、差分が大きくなりすぎて確認が難しくなります。

1回の依頼は1つのテーマに絞り、確認して commit してから次に進めると、履歴がテーマごとに分かれて読みやすくなります。

依頼1: バリデーションを追加 → 確認 → commit
依頼2: エラーメッセージを修正 → 確認 → commit

これは AI を使わない場合でも同じ原則ですが、AI は一度に大量の変更を出しやすいので、意識的に依頼を区切る方が安全です。

意図しない変更を戻す

差分を確認して「このファイルの変更はいらない」と判断したら、Git がすでに追跡しているファイルは git restore で元に戻せます。

git restore memo.txt

このコマンドは、まだ git add していない変更を破棄します。ファイルは直前の commit の状態に戻ります。

すでに git add してステージ済みの場合は、先にステージを外してから戻します。

git restore --staged memo.txt
git restore memo.txt

必要な変更だけをステージして commit し、不要な変更は git restore で消す。この選別が、AI の出力をそのまま丸ごと受け入れるのとの違いです。

AI が新しく作った不要ファイルは、git restore では戻せません。git statusUntracked files と出ているファイルは、エクスプローラーで削除するか、PowerShell なら次のように消します。

Remove-Item draft-note.txt

削除後にもう一度 git status を実行し、不要なファイル名が消えていることを確認します。

commit してはいけないもの

AI が生成したコードの中に、次のようなものが混ざっていないか確認します。

注意するもの
秘密情報API キー、パスワード、トークン
環境設定ファイル.env.env.local
AI が仮で入れた値your-api-key-hereTODO: replace

秘密情報を一度 commit すると、履歴から完全に消すのは手間がかかります。git statusUntracked files.env が見えたら、commit せずに .gitignore に追加します。

.gitignore は、Git に「このファイルは追跡しなくてよい」と伝えるための設定ファイルです。プロジェクトのルートに置き、除外したいファイル名やパターンを1行ずつ書きます。

.env
*.log

.env*.log を書いておくと、該当ファイルは git status に表示されなくなります。

AI の出力は「採用前に読む」

  1. ブランチを切る
  2. git status できれいな状態を確認する
  3. AI に依頼する(1回1テーマ)
  4. git status / git diff で差分を読む
  5. 不要な変更は git restore で戻す
  6. 秘密情報や不要ファイルが混ざっていないか確認する
  7. 必要な変更だけ git addgit commit する

AI が出したコードを「読まずに全部 commit」するのと、「差分を見てから必要なものだけ取り込む」のとでは、あとから問題が起きたときの対処のしやすさが大きく違います。

AI を使うこと自体が問題なのではなく、出力を確認せずに進めることが問題です。Git の基本コマンドはそのための道具として十分に使えます。

この回のまとめ

場面やること
大きい変更の前git switch -c でブランチを切る
AI に依頼する前git status できれいな状態を確認する
AI の変更後git status / git diff / git log で差分を読む
不要な変更があるgit restore で戻す
不要な新規ファイルがある削除して、必要なら .gitignore に追加する
秘密情報が混ざっているcommit せず .gitignore に追加する
依頼の単位1回1テーマに絞り、確認してから次へ

git-basics コースはこの回で一区切りです。ここまでの記事で扱った commit、push、branch、conflict、差分確認の操作は、AI を使う場面でもそのまま役立ちます。学習を進める中で分からなくなったら、それぞれの回に戻って確認してください。