git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Git clone behave strange after active branch change in bare repo

From
ZCZdenek Crha <zdenek.crha@gmail.com>
Date
Mar 12, 2012, 10:10 UTC
Message-ID
<CA+OUE95+Ux_+hSRJw6MH-kh54JewXx-fbWqBoh-Eh_P1tNwAFA@mail.gmail.com>
Hello,

I'm trying to change active branch on bare repository to force checkout of different branch than master when directory is cloned. The git version I'm using is 1.7.9.1 from debian repository.

I've used git-symbolic-ref to change active branch without problem:
$ cd repository.git
$ git branch
* master
$ git branch a_branch
$ git symbolic-ref HEAD refs/heads/a_branch
$ cat HEAD
ref: refs/heads/a_branch

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

$ cd .. && git clone repository.git repo
$ cd repo && git branch
* master

I've tried to remove master branch and I've got result I've expected - new clone has one branch checked out, the 'a_branch'. But then I created another branch on the commit pointed by active branch and tried to clone:

$ cd repository.git && git branch AAA
$ cd .. && git clone repository.git
$ cd repo && git branch
* AAA
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
Is this behaviour correct or did I run into a bug?

Regards, Zdenek Crha

Next: Jeff King
Message 1 of 2 in “Git clone behave strange after active branch change in bare repo”
  1. Zdenek CrhaMar 12, 2012
  2. Jeff KingMar 12, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.