Gitのトラブルから安全に復旧するコマンドの確認

現在の状態を共有し、安全な復旧コマンドだけを確認する

プロンプト · 変数 2個

私はGitをターミナルのコマンドラインでのみ操作していますが、現在状態がおかしくなってしまい、元に戻したいです。何が起きたのかは以下に記載し、現在の状態は `git status` の実行結果をそのまま貼り付けています。

コマンドを案内する前に、誤って実行すると取り返しがつかない部分があるかどうか、確認が必要な点があれば先に質問してください。質問は最大3点までにしてください。特に、すでにリモートリポジトリにプッシュ済みのコミットかどうか、他の人が同じブランチを使用しているかを確認してください。

回答は以下の順序で作成してください。①現在の状態を、私の主観的な説明ではなく `git status` の結果を根拠として1段落で再説明し、私の理解に誤りがあれば指摘する ②実行すべきコマンドを1行ずつ提示し、各行のすぐ下にそのコマンドが何を変更するのかを1文で説明する ③実行後に結果を確認するためのコマンド ④期待通りの結果にならなかった場合に元の状態へ戻す方法。

履歴や他人の作業を消去する可能性があるコマンドは、他に手段がない場合のみ提示し、使用する場合は何が消失するのかを事前に警告してください。複数のコマンドを1行に繋げて提示しないでください。現在の私の状態に実際に必要なコマンドのみを提示し、参考用の別解などは追加しないでください。

状況の説明: """ {{状況の説明}} """

git statusの結果: """ {{git statusの結果}} """

コピーしたらここに貼り付け · ChatGPT・Claudeはプロンプト入りで開きます ChatGPTで開く ↗Claudeで開く ↗Geminiで開く ↗ ビルダーで編集 授業用カード画像を保存

なぜこう書くのか

文脈
私はGitをターミナルのコマンドラインでのみ操作していますが、現在状態がおかしくなってしまい、元に戻したいです。何が起きたのかは以下に記載し、現在の状態は `git status` の実行結果をそのまま貼り付けています。
聞き返し
コマンドを案内する前に、誤って実行すると取り返しがつかない部分があるかどうか、確認が必要な点があれば先に質問してください。質問は最大3点までにしてください。特に、すでにリモートリポジトリにプッシュ済みのコミットかどうか、他の人が同じブランチを使用しているかを確認してください。
形式
回答は以下の順序で作成してください。①現在の状態を、私の主観的な説明ではなく `git status` の結果を根拠として1段落で再説明し、私の理解に誤りがあれば指摘する ②実行すべきコマンドを1行ずつ提示し、各行のすぐ下にそのコマンドが何を変更するのかを1文で説明する ③実行後に結果を確認するためのコマンド ④期待通りの結果にならなかった場合に元の状態へ戻す方法。
制約
履歴や他人の作業を消去する可能性があるコマンドは、他に手段がない場合のみ提示し、使用する場合は何が消失するのかを事前に警告してください。複数のコマンドを1行に繋げて提示しないでください。現在の私の状態に実際に必要なコマンドのみを提示し、参考用の別解などは追加しないでください。
入力資料
状況の説明: """ {{状況の説明}} """
入力資料
git statusの結果: """ {{git statusの結果}} """

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 · 誤りがありますか? 知らせる