Re: Why is git clone not checking out files?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On Tue, 30 Jan 2007, Bill Lear wrote:
>
> 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:

> 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??]

Right.

> % 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
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]