Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How is Git Distributed Source Code Management?

I am a Git newbee with UNIX SCCS and Microsoft Visual SourceSafe experience. I’m just learning Git and it seems to have a huge and painful learning curve. I’ve already seen Git blow away all the data files I hadn’t committed, which concerns me. (How a utility can delete data files without warning is beyond me).

Linus Torvalds, in his video on Git, claims that Git is distributed, touts the benefits of distribution, but other than everyone having a copy (clone) of the source, doesn’t really explain how distribution works.

How does Git help distribution? How does Git help recover lost files? How does Git distribution work? Can I find where files have been distributed? Is there a Git distribution tutorial?

Thanks in advance!

like image 394
PalaDolphin Avatar asked Mar 02 '10 21:03

PalaDolphin


2 Answers

Read this : http://www.newartisans.com/2008/04/git-from-the-bottom-up.html


As for your other questions :

How does Git work ?

This is not a question specific enough to be answered. But generally, Git works by creating objects and putting them in a tree. The objects correspond to changes you have made to your content. Trees are objects themselves. What Git tracks is the changes made to the content in the repository.

How does distribution work?

Because all repositories can be servers, different repositories can compare their trees and objects, and determine what the changes are between such repository's current state and another. Thus, they are able to push to/pull from other repositories.

How does it help?

If you don't see how it can help you, stick with MVSS.


I think there might be a vocabulary problem. Distribution is not shipping. Git's distribution means every repository is a server. It doesn't mean it will keep track of where it has been cloned (although your own repository can keep a list of remote repositories from which to pull from / push to).

Read the PDF I made a link to. Then create a github repository by following their indications. Fork someone else's repository, anyone, just to see how it works.

like image 154
glmxndr Avatar answered Sep 18 '22 04:09

glmxndr


Git and Mercurial both follow very similar patterns on dealing with the distributed nature of the SCM. I can't speak to good Git tutorials, but there are some great works out there on Mercurial.

Understanding Mercurial - This has good information on the exact question you're asking... what does it mean for it to be distributed?

Mercurial Book - For more in-depth investigations.

like image 24
Ben Von Handorf Avatar answered Sep 20 '22 04:09

Ben Von Handorf