GitHub is an online service to help people work together on projects

Let's look at a repository:

Let's go explore a little. Notice that the main features are based around concepts that we've already looked at.

Alternatives to GitHub

There are many alternatives to GitHub, but like other social network scenarios, they suffer a bit from the "network effects" of GitHub. Here are 3 examples:

GitHub Pull Requests

Pull Requests are the "killer feature" of GitHub. You create a "Pull Request" in a repository when you have changes on one branch (usually in a different copy of the repository) that you want to have merged into another branch. The owner or other maintainers can then review your changes, give you feedback, and hopefully eventually merge it.

This and other features in GitHub make it like a social network for free and open source software projects.