Question

Is there a syntax to reset to the current branch's default upstream HEAD?

Something like:

git checkout mybranch
git reset --hard origin/mybranch

where origin/mybranch can be generic for the current branch's upstream HEAD?

Was it helpful?

Solution

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.)

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top