What does git push origin HEAD mean?

HEAD points to the top of the current branch. git can obtain the branch name from that. So it's the same as:

git push origin CURRENT_BRANCH_NAME

but you don't have to remember/type the current branch name. Also it prevents you from pushing to the wrong remote branch by accident.

If you want to push a different branch than the current one the command will not work.


If you want to push into the specific remote branch you can run:

git push origin HEAD:<name-of-remote-branch>

This is what I encounter when I was trying to push my repo back to the remote branch.