Re: [PATCH] Proof-of-concept patch to remember what the detached HEAD was
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Oct 15, 2009, 20:34 UTC
- Message-ID
- <7v3a5k4cri.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <alpine.LNX.2.00.0910151523020.32515@iabervon.org>
Daniel Barkalow <barkalow@iabervon.org> writes:
Show 10 quoted lines
> $ git checkout origin/master > $ git fetch > $ git checkout origin/next > Uncommited file '...' would be overwritten. > > If HEAD is a symref to refs/remotes/origin/master, and you update > refs/remotes/origin/master, git will subsequently see that your index > doesn't match HEAD, and when you switch branches, it will try to apply a > revert to the branch you're switching to. It's the same issue as pushing > into a non-bare repository.
I think the idea here is to allow HEAD to point at outside refs/heads/, e.g. refs/remotes/origin/master, but forbid commit and other commands from updating HEAD and its underlying ref via update_ref() unless HEAD is detached or points at a local branch.