Git4 択難易度 応用

共有ブランチへの git push -f で起きうる最も深刻な問題は?

正答

  1. 自分の作業ツリーにある未コミットの変更が消える
  2. リモートのブランチそのものが削除されてしまう
  3. 解消していないコンフリクトマーカーがコミットに混ざる
  4. 他の人が push したコミットがリモートから消える

解説

git push -f(--force)はリモートのブランチを自分のローカル履歴で無条件に置き換える。自分が最後に fetch した後に他の人が push していた場合、そのコミットはリモートの履歴から外れ、本人のローカルに残っていなければ失われる。ローカルの未コミット変更には影響しない。ブランチの削除は push --delete で別の操作。やむを得ず強制するときは --force-with-lease を使うと、知らないコミットがあれば拒否される。

参考: git-scm.com

force-pushpush

この問題を含む Git のテストを制限時間つきで解く

Gitクイズへ