Subject: Re: [Q] `git fetch tag NAME' into mirror repo does not update HEAD, what to do?

From: Tomas Carnecky <[email-masked]>
Date: Thu, 12 Aug 2010 10:33:13 +0200

On 8/12/10 9:54 AM, Brian Foster wrote:
> 
>  Bare repository ORIG's master looks like this:
> 
>    o--o--o--o--v1--o--v2--o--o--o HEAD
> 
>  where v1 and v2 are (annotated) tagged commits.
> 
>  Repository SLAVE is a mirror clone of ORIG which
>  (very deliberately!) lags behind (i.e., its HEAD
>  is one of the earlier (and usually tagged) commits
>  on ORIG).  SLAVE's master was like this:
> 
>    o--o--o--o--v1 HEAD
> 
>  We wanted to update its HEAD to v2, so did:
> 
>    git fetch ORIG tag v2
> 
>  This gave us:
> 
>    o--o--o--o--v1 HEAD
>                  \ 
>                   o--v2
> 
>  It did not update SLAVE's HEAD to v2, which we wanted.
>  This was worked-around by editing refs/heads/master(?)
>  but we don't want to do that again (esp. since we got
>  it wrong the first time (Thank you back-ups!)).

Fetch only fetches commits. It doesn't update any local refs (other than
FETCH_HEAD). If you want to switch HEAD to that new tag, use checkout.

>  Whilst we want to switch to a push from ORIG to SLAVE
>  model, until that happens (there are some IT issues),
>  we are still fetching on SLAVE from ORIG.  Hence, how
>  can we avoid the above issue; that is, what should we
>  have done?  Searching various docs has failed to find
>  any clew or answer.

Is SLAVE a bare repo? If not, please see
https://git.wiki.kernel.org/index.php/GitFaq#non-bare.

tom