The syntactic magic you want is part of a "revision specifier". These are documented in gitrevisions.
The string @{upstream}
(abbreviation, @{u}
), appended to a branch name, means "resolve the branch to its upstream". If you omit the branch name, git substitutes in HEAD
, i.e., HEAD@{u}
. This uses HEAD
to find the current branch and then proceeds as if you had specified that.
So:
git reset --hard @{u}
will do the job (of course as with any git reset --hard
, use this with care).
(In some shells you may have to quote the braces.)