Git clone question

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

 



Hi

I am trying to understand about git clone.

>From the few git videos that I have watched and using git, I
understand that git stores the difference between each version, as an
object, with the sha of the diff as the way to address the object.

However, what is not clear to me is, how does `git clone` then work ?
If a repository has a thousand commits, do we download all the
thousand objects to the client system and then apply them one on top
of the other ? I am sure that must not be the case because the `git
clone` operation completes so fast, and I doubt if my disks are that
fast.

However, when I do a `git clone` I could see the history until the first commit.

I can also partially ignore the history and clone only the last N
commits history too. So my question is, how does `git clone` work
under the hood and how is it so fast ? Does the git server save the
expanded git tree (with all the git patches applied) and we just
transfer them when we do the `git clone` ?

Are there any good talks / papers / books on the internals of the
working of git ?

Thanks.


-- 
Sankar P
http://psankar.blogspot.com



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

  Powered by Linux