Thread (7 messages) flat view 7 messages, 2 authors, 2016-06-15

Re: Unable to checkout a branch after cloning

From: Michael J Gruber <hidden>
Date: 2016-06-15 22:47:13

Matthew Lear venit, vidit, dixit 11.08.2009 12:10:
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:
quoted
git checkout upstream
error: pathspec 'upstream' did not match any file(s) known to git.
quoted
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
quoted
git checkout upstream
Switched to branch "upstream"
quoted
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help