状況
feature ブランチで作業の途中(未コミットの変更あり)に、main への急ぎの修正を頼まれた。
急ぎの修正を出して作業に戻るまでを、正しい順番に並べてください。
正答
- 修正をコミットして push する
- feature に戻って git stash pop する
- git stash で作業中の変更を退避する
- git switch -c hotfix main で修正用ブランチを作る
正しい順番
- git stash で作業中の変更を退避する
- git switch -c hotfix main で修正用ブランチを作る
- 修正をコミットして push する
- feature に戻って git stash pop する
解説
未コミットの変更を残したままブランチを切り替えると、変更が修正用ブランチに持ち越されて急ぎの修正に混ざったり、衝突して切り替えられなかったりする。先に git stash で退避し、main から修正用ブランチを作って修正をコミット・push する。終わったら feature に戻り、git stash pop で退避した変更を戻す。pop を feature に戻る前に実行すると、作業途中の変更が修正用ブランチに出てしまう。
参考: git-scm.com
この問題を含む Git のテストを制限時間つきで解く
Gitクイズへ