AIにコードを変更してもらったあと、「思っていた場所まで変わった」「前の状態へ戻したい」と困ることがあります。結論は、いきなり広い範囲を破棄せず、まず変更ファイルと差分を確認し、戻す対象を1つずつ決めることです。
この記事では、VS Codeの画面とGitを使って、未コミット・コミット済み・共有済みの変更を安全に戻す順番を説明します。AIに修正を頼む前に履歴を残す方法も紹介します。
この記事が向いている人
- AIコーディングの変更が意図と違い、元の状態を確認したい人
- VS CodeやGitを使い始めたばかりで、破棄ボタンを押してよいか迷う人
- 必要な変更だけを残し、不要なファイルだけ戻したい人
逆に向いていない人
- Gitの履歴がなく、保存前のデータ復旧を専門的に行いたい人
- 共有済みのブランチを大きく巻き戻す作業を、複数人で調整したい人
最初に変更を止め、差分を確認する
AIへの追加依頼や自動修正を止め、現在の状態を先に保存します。エディターに未保存の変更がある場合は、上書き保存する前に別名コピーを作り、必要な内容を失わないようにしてください。
- VS Codeのソース管理を開き、変更されたファイル名を確認する
- 各ファイルを選び、削除・追加・書き換えられた行を読む
- 必要な変更と戻したい変更を分け、残す内容を別ファイルやコミットに保存する
ターミナルを使う場合は、リポジトリのフォルダーで次を実行します。
git status --short
git diff -- path/to/file
git statusは変更済み・追加済みのファイルを示し、git diffは指定したファイルの未ステージ差分を表示します。ファイル名が分からないまま、プロジェクト全体を対象に破棄操作をしないでください。
未コミットの変更は対象ファイルだけ戻す
変更がステージされておらず、残す内容もないことを確認できた場合は、VS Codeのソース管理で対象ファイルを開いて差分を読みます。そのファイルだけを「変更を破棄」します。複数ファイルをまとめて破棄する操作は、一覧と差分を全件確認できるまで使わないでください。
Gitコマンドでは、次の形で1ファイルをインデックスの内容へ戻せます。
git restore --worktree -- path/to/file
これは指定したファイルの作業ツリー上の変更を破棄します。まだ必要な行が残っていないか確認し、ファイル名を正確に指定してください。新規作成され、まだGitに追跡されていないファイルは、このコマンドでは消えません。新しいファイルも一覧で確認し、必要ならコピーしてから個別に扱います。
ステージ済みの差分を戻す場合
ステージ済みとは、次のコミットに含める候補として選んだ状態です。ステージだけを解除して編集内容を残す場合は、VS Codeで「ステージングを解除」を選ぶか、次のコマンドを使います。
git restore --staged -- path/to/file
ステージと作業ツリーの変更を両方とも最後のコミットの状態へ戻す操作は、残したい差分も一緒に失います。両方を戻す必要があると確認できたときだけ、対象ファイルを明示します。
git restore --source=HEAD --staged --worktree -- path/to/file
意味が分からない段階では実行せず、先に差分を別の場所へコピーしてください。特に git reset --hard のように広い範囲を一括で巻き戻すコマンドは、この確認手順では使いません。
コミット後なら「どこまで共有したか」で分ける
まだ自分のPC内にあるコミット
まずコミットの差分を確認します。VS Codeのソース管理グラフから対象コミットを開き、必要な編集が含まれていないかを見てください。直前の未公開コミットを取り消し、変更内容を作業ツリーに残す方法もあります。取り消し方はGitの状態やツールで異なるため、コミット自体を消す前に差分を保管します。
すでに共有・公開したコミット
ほかの人が取得した可能性のある履歴を書き換えるのではなく、問題のコミットを打ち消す新しいコミットを作る方法を検討します。GitHub上でも、共有済みの変更を取り消す場合は「Revert」が案内されています。共同作業中なら、先にチームの運用手順を確認してください。
VS CodeのTimelineでファイル履歴を探す
コミットしていない過去の保存内容は、VS CodeのエクスプローラーにあるTimelineから確認できる場合があります。対象ファイルを選び、Timelineの保存履歴を開いて、内容を現在のファイルと比較します。Local HistoryはGitコミットの代わりではなく、設定や保持状態によって履歴がないこともあります。復元前に現在のファイルをコピーしておくと安全です。
AIに再修正を頼む前に残すもの
- 変更前の状態が分かるコミット、または別名コピー
- AIが編集したファイルの一覧と差分
- 残す変更、戻す変更、確認したい動作のメモ
復旧後にもう一度AIへ依頼するなら、「対象ファイル」「残したい変更」「戻したい範囲」「完了の確認方法」を分けて伝えると、修正範囲を絞りやすくなります。依頼文の作り方はAIコーディングの指示文テンプレートにまとめています。変更差分やテストを公開前に見る手順はAI生成コードの公開前チェックも参考になります。
変更後にコードが動かなくなった場合は、復旧操作を急ぐ前に環境やエラー内容を切り分けます。原因確認はAI生成コードが動かないときの確認順、作業前の環境整理はAI作業用デスク環境のハブもご覧ください。
よくある質問
Gitにコミットする前の変更も戻せますか?
作業ツリーに残っている変更は、差分が確認できれば対象ファイル単位で戻せます。すでに上書き破棄して履歴もバックアップもない場合は、Gitから取り戻せないことがあります。
AIが作った新しいファイルはどうしますか?
git status --shortで未追跡ファイルを確認します。必要なファイルを誤って消さないよう、名前と内容を見てから個別にコピーまたは削除してください。
コミットを共有した後に間違いに気づいたら?
共有済み履歴を直接書き換えると、ほかの人の作業に影響する場合があります。チームの手順を確認し、元の変更を打ち消すコミットを作る方法を検討してください。
まとめ
AIの変更を戻すときは、まずAIの作業を止め、ファイル一覧と差分を確認します。未コミットの変更は必要な内容を退避してから対象ファイルだけを戻し、ステージ済み・共有済みの変更は状態に合わせて別の方法を選びましょう。今後の学習手順を整理したい人はAIコーディングの独学ロードマップ、講座と独学の選択肢を比べたい人はバイテックGEEKの料金と選び方を確認できます。
作業環境も整えたい人へ
差分を並べて読む時間が増え、画面の狭さが作業しにくさにつながる場合は、在宅ワーク向けモニターの選び方も参考になります。ノートPCと外部モニターなどを接続する周辺機器を探す場合は、USB-Cドッキングステーションの比較を確認してください。

