状況
共有ブランチ main に push が弾かれた。AI アシスタントに聞くと、次の答えが返ってきた。
git push が rejected になりました。他の人の変更を消さずに強制で push する方法はありますか。
git push --force-if-safe origin main を使ってください。他人の変更があるときは自動で止まる安全な強制 push です。
この回答への対応として適切なのは?
正答
- git の公式ドキュメントでオプションを確かめる。--force-if-safe は存在しない
- 実行してエラーにならなければ、安全に強制 push できたとみなしてよい
- AI に同じ質問をもう一度して、同じ答えが返れば信じて実行する
- --force-if-safe が効かなければ --force に変えれば同じ意味になる
解説
git push に --force-if-safe というオプションは無く、実行すると unknown option で止まる。AI は実在するオプション(--force-with-lease や --force-if-includes)に似た名前を作り、もっともらしい説明を付けることがある。知らないオプションは git push -h や公式ドキュメントで確かめる。そもそも共有の main への強制 push はチームの合意が先で、まず fetch して差分を見るのが筋である。同じ質問を繰り返しても同じ作り話が返ることがある。--force は他人の変更を確認せずに上書きするので、まったく別の意味になる。
参考: git-scm.com
この問題を含む AI の出力チェック のテストを制限時間つきで解く
AI の出力チェッククイズへ