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

Re: Unable to checkout a branch after cloning

From
Michael J Gruber <git@drmicha.warpmail.net>
Date
Aug 11, 2009, 12:04 UTC
Message-ID
<4A815E49.60406@drmicha.warpmail.net>
In-Reply-To
<4A814392.4080803@bubblegen.co.uk>
Matthew Lear venit, vidit, dixit 11.08.2009 12:10:
Show 78 quoted lines
> Hi all,
> 
> Apologies for perhaps a silly question, but I'd very much appreciate a
> little bit of assistance.
> 
> I've set up a git repository on a machine accessible from the internet
> with the intention to share code with another developer. We clone the
> repository, commit changes then push back as you'd expect. The server
> runs gitweb for repository browsing. Clients are running git v1.6.0.6.
> 
> When I created the initial repository I also created two additional
> branches - 'upstream' and 'custom'. The former is to act as a 'vendor
> branch' and the latter contains code specific to the custom platform
> that we're working on. The master branch contains merges from the
> upstream branch and also changes that we've made. The custom branch
> contains merges from master with custom platform specific changes.
> 
> I've committed changes and on both upstream and custom branches as work
> progressed, merged them where appropriate, added tags etc and pushed
> everything to the remote repository. No problem. I can view the
> branches, tags etc in gitweb and everything looks fine.
> 
> However, I can clone a new repository just fine but I'm unable to
> checkout the upstream or custom branches. After cloning, only the master
> branch is available, ie:
> 
>> git checkout upstream
> error: pathspec 'upstream' did not match any file(s) known to git.
> 
>> git branch -a
> * master
>   origin/HEAD
>   origin/master
> 
> .git/config:
> 
> [core]
>         repositoryformatversion = 0
>         filemode = true
>         bare = false
>         logallrefupdates = true
> [remote "origin"]
>         url = https://mysite/git/project.git
>         fetch = +refs/heads/*:refs/remotes/origin/*
> [branch "master"]
>         remote = origin
>         merge = refs/heads/master
> 
> But the initial local repository where I work (ie created the branches,
> committed changes, tag, push etc) seems to be fine, ie
> 
>> git checkout upstream
> Switched to branch "upstream"
> 
>> git branch -a
>   custom
> * master
>   upstream
> 
> .git/config:
> 
> [core]
>         repositoryformatversion = 0
>         filemode = true
>         bare = false
>         logallrefupdates = true
> [remote "origin"]
>         url = https://mysite/git/project.git
>         fetch = +refs/heads/*:refs/remotes/origin/*
> 
> 
> Developers need to be able to clone the repository and then switch to
> the appropriate branch in order to work. However it seems that after a
> clone, only the master branch is available.
> 
> Why is this?
> 
> Any help would be much appreciated indeed.

If I understand you correctly you have 3 repos: the "initial" one on which everything is as expected, the "server" one and the "new clone" which is missing branches.

Now: How's the server one doing, i.e. what does "git ls-remote
https://mysite/git/project.git" say? I suspect that one either does not
have the branches (you haven't told us how you pushed) or in the wrong
place (remotes/).
Michael
Previous: Matthew LearNext: Matthew Lear
Message 2 of 7 in “Unable to checkout a branch after cloning”
  1. Matthew LearAug 11, 2009
  2. Michael J GruberAug 11, 2009
  3. Matthew LearAug 11, 2009
  4. Michael J GruberAug 11, 2009
  5. Matthew LearAug 11, 2009
  6. Michael J GruberAug 11, 2009
  7. Matthew LearAug 11, 2009

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.