GitHub came into existence in early 2008 and radically changed the way source code management is handled. GitHub is a web-based version control repository that uses the Git system of source control management, giving the developers a user-friendly interface to manage their code. Today, GitHub is one of the top Git products, being used by both open source developers, to development teams in large corporations.
GitHub allows anyone to host their code, as long as it’s public. If you want to have private repositories, you must sign up for a paid plan. Students can take advantage of their student plans to get free private repositories, amongst other goodies.
However, there are good alternatives to GitHub that offer the same features, but allow for free repositories. Some of the big ones are described below:
Bit Bucket (By Atlassian)
Atlassian, the creator of one of the widely used scrum management tool – Jira, have their own Git based source management product. Bit Bucket is a great alternative to GitHub as it provides most of the features provided by GitHub, but also allows for private repos under the free plan. The UI is not as appealing as GitHub’s and the search functionality can use more work. But for a free product, Bit Bucket is great!
Not to be confused by the similar sounding name, GitLab is a completely separate project, managed by a completely different team. GitLab provides more features than GitHub, and like Bit Bucket allow for unlimited private repositories. However the performance is no where near GitHub.
BeanStalk is another code management tool that doesn’t require downloading any tool. It is being run by the software company Wildbit. BeanStalk advertises themselves as more than just source management, as it comes packaged with a few deployment tools and processes lacking in GitHub and Bit Bucket.
Apache Allura has the benefit of being an Apache Foundation project, but it is a relatively new project. Apache Allura supports Git, SVN and Hg for code management. The search functionality is more powerful than that of GitLab, but the UI could use more work. It is a free and open source, however it is not hosted. You get the software, and require setting it up on your own server. This is a big disadvantage compared to the other.