状況
ログイン修正のブランチを、プルリクエスト用に push したい。作業者が打ったコマンドは次のとおり。
Enter の前に止めるべき点は?
$ git branch --show-currentfeature/fix-login$ git push origin HEAD:main正答
- HEAD:main は今のブランチを remote の main に直接 push する
- -u を付けないと、ブランチが remote に登録されず push が失敗する
- HEAD は直前のコミットを指すので、最新の変更が push されない
- origin ではなく upstream に push しないとプルリクエストを作れない
解説
git push origin HEAD:main は「今のコミットを remote の main として送る」という意味で、main が保護されていなければ、レビューを通らずに feature の内容が main に入り、そのまま本番デプロイの対象になりうる。プルリクエスト用なら git push -u origin feature/fix-login と書く。-u は追跡先を設定するオプションで、無くても push 自体はできる。HEAD は今いるブランチの最新コミットを指す。
参考: git-scm.com
この問題を含む 危険察知 のテストを制限時間つきで解く
危険察知クイズへ