Re: Why is git clone not checking out files?
On Tue, 30 Jan 2007, Bill Lear wrote:
Show 15 quoted lines
>
> Hmm, so I did this:
>
> % cd /repos/git/project
> % GIT_DIR=. git branch
> topic
>
> And then, tried it all again:
>
> % cd ..
> % rm -rf project
> % mkdir project
> % cd project
> % git --bare clone --shared
> % GIT_DIR=. git fetch git://source/public/project
Heh. That's not doing what you seem to expect.
If you don't give it a branch to fetch into, "git fetch" will not populate *any* branch. It does fetch the data:
Show 8 quoted lines
> warning: no common commits
> remote: Generating pack...
> remote: Done counting 1148 objects.
> remote: Deltifying 1148 objects.
> remote: 100% (1148/1148) done
> Unpacking 1148 objects
> remote: Total 1148, written 1148 (delta 632), reused 1020 (delta 534)
> 100% (1148/1148) done
but it never wrote it into a branch, since you didn't tell it where it should go.
It didn't go away entirely, though: it's referenced by FETCH_HEAD, and this is actually the *common* thing for fetch usage when you use it to just them merge the fetched result into your current head. That is, for example, what I do all the time (except the "fetch+merge" thing is usually just called "git pull" ;)
> % GIT_DIR=. git branch
> [eh? No branches??]
> % cat HEAD
> ref: refs/heads/master
.. and again, this is fine, but it just means that since no "master" branch exists, you have an empty HEAD with no commits.
> So, where are my branches? And don't tell me I don't need no
> steenking branches...
You absolutely need some steenking branches, but you need to tell git which branch you want to use.
So either use
git --bare fetch git://source/public/project topic:master
(to tell git to fetch the remote 'topic' into the local 'master')
OR, if you just prefer using the 'topic' name - which is certainly not wrong at all, do
git --bare fetch git://source/public/project topic:topic
git --bare symbolic-ref HEAD refs/heads/topic
where that second line is important: it's the one that tells that you want HEAD to be pointing to the 'topic' branch.
[ You could have done that second line before the fetch, and really
considered it part of the "create repository" sequence, rather than the
"fetch" sequence ]
Or something like that.
Linus