Q
gitでremote branchにpushをする時に、 git push origin HEAD コマンドを使うが、この際の HEAD とは何か?
A
HEAD は「現在のローカルブランチを指し示す参照 1 」として機能する。
実体は、HEADファイル という名称のファイルであり、 git switch する度に、ファイル内の ref: refs/heads/ 以降のブランチ名が更新される。
$ cat ./.git/HEAD ref: refs/heads/main
git push origin HEAD を実行する際には、この HEADファイル が参照され、バックグラウンドで現在のローカルブランチ名に置き換えられるのだと思われる。2