We all have personal Git repositories that we need to keep private. Surprisingly, most people use Git exclusively for version control whether it be for public or private repositories. Many of those people end up making their private projects public to avoid paying the monthly fee.
I just subscribed to GitHub’s personal paid account which costs $7 for unlimited private repositories. Today I want to talk about why I’ve decided to host my private repos on GitHub and if it’s worth the price.
What you get with a paid account
With the personal account, which is the one I bought, you get an unlimited number of private git repositories for just $7 per month. The icing on the cake is that you can still add as many collaborators to projects as you want at no extra cost. The downside? All collaborators get full access/permissions to your repository. To get more granular control over collaborator permissions you’ll need to upgrade.
Alternatives to GitHub private repos
I always like to pound into my students’ heads the fact that Git and GitHub are totally separate things. Git is a version control system and GitHub is UI built on top of Git and allows you access to Git features through a web app as well as adding some social features to Git repository collaboration.
Host your own repo
I never thought I’d pay to get private repositories on GiHub. It just wasn’t worth it to me because I could just as easily set up a bare repository on any VPS I run (I currently have about 5) or run an instance of GitLab if I wanted private repos.
With a bare repo on a server you create a folder, run
git init —bare then set your remote URL to that remote URL which will always use the SSH protocol. The upside is that its easy to manage a private repository by yourself. Collaborating with others using a private repository on a VPS is a little harder because you’d need to have some experience setting up folder permissions if you want anyone else on the server to have push and pull rights. The only easy way around this is for everyone on the team to share a single user account. This method has been working really well for me for the past few years but now I need more control that only a GUI could make easier.
GitLab is basically an open source version of GitHub with built in continuous deployment features built in. Back when I was running my last company we used GitLab to host private, internal projects, run tests on push, then deploy the code to production or staging based on the branch being pushed.
Setting up GitLab was pretty easy (at first – I used both a manual installation process and DigitalOcean’s one-click app setup. Both times we ran into issues when trying to use an SSL certificate.
The only issue with hosting GitLab yourself is having to maintain it, pay the server costs, and having to maintain it. This takes time away from development. GitLab, in my opinion, is just as good if not better than GitHub. GitLab’s killer feature is the continuous delivery and testing features. On GitHub you end up hooking up your repo to Travis CI or something and then create your web hooks to deploy
Are paid GitHub plans worth it?
Yes. You can always easily set up your own server with either bare repos or something like GitLab but those options actually end up costing slightly more than the cheapest GitHub plan.
The deciding factors for me were cost and time. Using GitHub paid plans is cheaper than running even a bare repo on a VPS. Compare the cost of a small VPS, $5/month at most providers, factor in that a bare repo doesn’t give you a nice UI to manage your repository, and it’s clear cost isn’t a big issue. GitHub is also a well known web app that makes it easier for collaborators to join in on projects with you. Finally, you don’t have to worry about your server going down or doing security updates. All of that is taken care of for you by GitHub and deploying via GitHub ends up being a lot easier than other methods despite there sometimes being more steps involved compared to the alternatives.
So I think that now, especially since GitHub changed it pricing to be based on users rather than repos, GitHub is definitely worth the expense. I’ll post an update in a few months to see if I feel the same way about it but for now the verdict is in: GitHub paid plans are definitely worth the cost.