Git難易度 応用

状況

自分だけが使う feature ブランチで PR を出している。main が進んだので、rebase で最新の main に追従させたい。

PR を更新するまでを正しい順番に並べてください。

正答

  • git push --force-with-lease で PR を更新する
  • git rebase origin/main で付け直す
  • git fetch origin で最新を取る
  • テストを流して壊れていないか確かめる
正しい順番
  1. git fetch origin で最新を取る
  2. git rebase origin/main で付け直す
  3. テストを流して壊れていないか確かめる
  4. git push --force-with-lease で PR を更新する

解説

origin/main は fetch したときの状態なので、先に git fetch origin で最新にしないと古い main の上に付け直すことになる。rebase の後は、main の変更と自分の変更を組み合わせた状態をテストで確かめてから push する。rebase でコミットが作り直されているため通常の push は拒否され、上書きが要る。--force ではなく --force-with-lease を使えば、知らない間に他の人が push していたときに上書きせず止まる。

参考: git-scm.com

rebaseforce-with-leasepull-request

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

Gitクイズへ