Re: Git clone behave strange after active branch change in bare repo
From: Jeff King <hidden>
Date: 2016-06-15 22:53:16
On Mon, Mar 12, 2012 at 11:10:03AM +0100, Zdenek Crha wrote:
When I run git clone while 'master' and 'a_branch' point to same commit, I will get clone with default branch 'master' where I would expect default branch 'a_branch'.
Yes, this is a known issue. The git protocol does not transfer the contents of the symref; the client must guess the branch name from the set of refs that are advertised. This has been discussed before, and there were even some patches proposed, but I think nobody cared enough to push it through, as it requires an extension to the protocol. You can search the list archives for past discussions.
I did few more checks and it seems to me that: * when active branch is 'master' then default branch in clone is always master as expected * when active branch is different from 'master', then the default branch in clone is a first branch in alfabetically sorted list of branches that point to same commit as active branch
Exactly. The relevant code is in remote.c:guess_remote_head. -Peff