Building on the writing about what Git is (see issue #1) we can discuss what the GitHub service is and what it lets us do.
Given that Git is a decentralized version control system you don't need to have any other services in order to use it. So why the massive success of services like GitHub?
What you have to do if you don't have a service like GitHub
Say you have a team that's working on some documents with Git, if anyone makes a change in their local copy they still have to share it with everyone else. This is decentralized after all.
What you could in theory do is have everyone push their changes to everyone else. This works fine for a really small team but very quickly gets unmanageable when you have a lot of people working on it for the exact same reasons that emailing around documents starts getting substantially worse when the group of people involved increases. This decrease in efficiency is related to the number of connections that are possible, if everyone is connected we have a connected graph:
People
connections
2
1
3
3
4
6
5
10
6
15
7
21
8
28
The number of connections is $$ \frac{n(n-1)}{2} $$ where $$n$$ is the number of people. As you can see adding a new person adds a number of connections that was the size of the old group. Which effectively means that as this gets bigger you need a different approach.
So what people do is to create a "point of truth" that everyone interacts with to share changes and publish official versions. Now people only need to interact with that one Git server.
Setting these servers up is a bit of a pain however, especially if you are non-technical.
What is GitHub
GitHub is a service that will host your Git repositories. This gives you a central point of reference and a nicely integrated set of tools to work with those Git repositories.
You are paying both for these nicely integrated tools and for the operations that keep the site up and running.
Building on the writing about what Git is (see issue #1) we can discuss what the GitHub service is and what it lets us do.
Given that Git is a decentralized version control system you don't need to have any other services in order to use it. So why the massive success of services like GitHub?
What you have to do if you don't have a service like GitHub
Say you have a team that's working on some documents with Git, if anyone makes a change in their local copy they still have to share it with everyone else. This is decentralized after all.
What you could in theory do is have everyone
push
their changes to everyone else. This works fine for a really small team but very quickly gets unmanageable when you have a lot of people working on it for the exact same reasons that emailing around documents starts getting substantially worse when the group of people involved increases. This decrease in efficiency is related to the number of connections that are possible, if everyone is connected we have a connected graph:The number of connections is $$ \frac{n(n-1)}{2} $$ where $$n$$ is the number of people. As you can see adding a new person adds a number of connections that was the size of the old group. Which effectively means that as this gets bigger you need a different approach.
So what people do is to create a "point of truth" that everyone interacts with to share changes and publish official versions. Now people only need to interact with that one Git server.
Setting these servers up is a bit of a pain however, especially if you are non-technical.
What is GitHub
GitHub is a service that will host your Git repositories. This gives you a central point of reference and a nicely integrated set of tools to work with those Git repositories.
You are paying both for these nicely integrated tools and for the operations that keep the site up and running.