なぜこう書くのか
GitコマンドをChatGPTに質問する際、最も危険なのは状態を示さずに「元に戻して」とだけ伝えることです。AIは最も一般的な状況を想定して回答しますが、その想定には多くの場合、強制プッシュ(force push)やハードリセット(hard reset)が含まれています。それをそのまま実行すると、まだコミットしていない変更や同僚のコミットが警告なしに消え去ってしまいます。
コンテキストを2つに分割して入力させた理由はここにあります。人間が書いた状況説明は間違っている可能性があります。「ブランチを切ったつもりだった」という言葉自体がすでに思い込みだからです。一方で、git status の結果は客観的な事実です。両方を同時に渡し、出力フォーマットの①で「私の言葉ではなくstatusの結果を根拠に」再説明させることで、認識違いをまず排除できます。
逆質問の段落は、安全装置の半分を担っています。リモートにプッシュ済みか、他人が同じブランチを使っているかによって安全なコマンドは完全に変わりますが、この情報は git status の結果だけでは判別できません。先に質問を受けることで、危険なコマンドを提案されるリスクを大幅に減らせます。
制約条件の3行は、それぞれ異なる事故を防ぎます。警告の要求はコミット取り消し時に履歴を吹き飛ばす事故を、1行に繋げない要求は前のコマンドが失敗したのに後ろのコマンドが実行されてしまう事故を、「参考用の別解を追加しない」要求は複数の手法を無秩序に混ぜて実行してしまう事故を防ぎます。貼り付ける情報を """ で囲んでいるのは、ログに含まれるコミットメッセージがプロンプトの指示として誤認されるのを防ぐためです。
用語が分からなければAha AIで: prompt, hallucination
悪い例との比較
Gitでコミット3つ戻したいんだけどコマンド教えて
状態が分からないため、AIは最も一般的な回答(ハードリセットや強制プッシュ)を案内してしまいます。未コミットの変更が一緒に消えてしまったり、すでにリモートにプッシュ済みのコミットを消してチームメンバーのリポジトリと不整合を起こしたりします。各コマンドが何を変更するかの説明もないため、実行後に何が消えたのか把握できず、さらに検索したコマンドを打ち込んで事態を一層悪化させることになります。
バリエーション
コンフリクトが発生して停止した場合
マージ(merge)の途中でコンフリクト(競合)が発生して停止しました。状況は以下の通りです。コンフリクト表示があるファイルをどのような手順で処理すべきか、各ステップで何を確認すべきかを教えてください。現在の状態から処理を中止し、マージ前の状態に戻す手順もあわせて教えていただき、その際に何が失われるのかも明記してください。
状況の説明: """ {{状況の説明}} """
git statusの結果: """ {{git statusの結果}} """
コンフリクトは復旧よりも手順の正確さが重要です。中止して元に戻す手順を同時に把握しておくことで、作業途中でさらに複雑化した際にも安全に脱出できます。
コマンド実行前に安全性だけ確認したい場合
以下の状況において、私が実行しようとしているコマンドが安全かどうかを事前に確認してください。別のコマンドを提案するのではなく、このコマンドが何を変更するのか・やり直し(revert)が可能か・この状況においてどのようなリスクがあるかのみを教えてください。危険がある場合は、事前に何をバックアップすべきかも教えてください。
状況の説明: """ {{状況の説明}} """
Web等で見つけたコマンドをそのまま実行する前に使用します。新しいコマンドを提示させるのではなく検証のみを依頼することで、最終的な判断を自分の手元に残せます。
モデル別の注意
コマンドを実行する前に作業フォルダ全体をコピーしてバックアップしておけば、どのような失敗が起きても元の状態に戻せます。
関連プロンプト
最終更新 2026-09-02 · 誤りがありますか? 知らせる