Git has been my version control system of choice for a few years now. With that, most of my time with git has been spent with Github, no surprise there. GitHub has been a huge player in the game for several years(started in 2007), but I think it reached critical mass. I wanted to take some time to help people understand that Github is not the only thing out there.

My issue with Github is its blind association attached to git. People automatically pressume git == Github, and I think this is detrimental to the developer community. Having such a large market share allows them to get away with just being an okay platform.

Gitlab on the other hand, is still relatively new. Started in 2011, and Y-combinator backed in early 2015, Gitlab has grown very fast in a short amount of time. This growth can be attributed is due to what it offers that Github cannot.

Here are some pros and cons that I’ve encountered while developing on both:

#Pros of Github

  • Most widely used git repository site out there
  • Great documentation for using git
  • Desktop apps and text editor/IDE integration
  • Straightforward and easy to get set up and get going
  • Github Pages

#Cons of Github

  • No free private repos
  • High cost of private repos (7$ per month for five repos - the smallest and cheapest bundle)
  • Cannot install on server
  • Instability lately from Ddos

#Pros of Gitlab

  • Unlimited private repos
  • Protected branches
  • Can install on server
  • Protected branches - allows you to lock down which branches can get pushed by whom
  • User groups and privileges
  • Easy to migrate projects from other Git locations like Github
  • SSH key security
  • Project tracking and statistics
  • And so many more

#Cons of Gitlab

  • Protected branch is automatically setup - took me a few minutes to figure out why nobody else can push to my branch :)

#Conclusion So with all this said, if you want the private repos, I would go somewhere other than Github. If you want more control, analytics, security, in house server capabilities, I’d go with Gitlab. I’ve been on Gitlab since March, and can attest to its ease of use and power. I still have my Github profile, to help some friends on their projects. But I will stay with Gitlab.