Re: `git fetch` not updating 'origin/HEAD' after branch rename
- From
Chris Torek <chris.torek@gmail.com>
- Date
- Apr 14, 2021, 00:26 UTC
- Message-ID
- <CAPx1GvdeNEyPEZ7GdRKeAevnvjyLmoXHjQP0W6iToDsJPAqDHA@mail.gmail.com>
- In-Reply-To
- <CAHwnEogvmTZ-VS5GksoGEiyo3EHO+At+xeWa3frXUESD3HicnQ@mail.gmail.com>
On Tue, Apr 13, 2021 at 5:18 PM Sam Bostock <sam.bostock@shopify.com> wrote:
> Long story short, it seems to me that `git fetch` should update > "refs/remotes/origin/HEAD" when the upstream HEAD changes, but it > doesn't.
It's never been the *intent* to have `git fetch` update the corresponding remote-tracking `HEAD` ref. To make that happen, you must run `git remote`:
git remote set-head origin -a
for instance.
I have, however, often thought that this is the wrong *default* way for things to work, and that at least by default, `git fetch origin` should update `origin/HEAD` if the fetch result indicates that it should. See also Junio's reply. I think a configuration knob (similar to `fetch.prune`) would be reasonable here. Users could then be encouraged to set `fetch.prune` to `true`, and `fetch.update-remote-HEAD` (or whatever) to `true` as well.
Chris