Why you can trust ZDNET
:ZDNET independently tests and researches products to bring you our best recommendations and advice. When you buy through our links, we may earn a commission.Our process
'ZDNET Recommends': What exactly does it mean?
ZDNET's recommendations are based on many hours of testing, research, and comparison shopping. We gather data from the best available sources, including vendor and retailer listings as well as other relevant and independent reviews sites. And we pore over customer reviews to find out what matters to real people who already own and use the products and services we’re assessing.
When you click through from our site to a retailer and buy a product or service, we may earn affiliate commissions. This helps support our work, but does not affect what we cover or how, and it does not affect the price you pay. Neither ZDNET nor the author are compensated for these independent reviews. Indeed, we follow strict guidelines that ensure our editorial content is never influenced by advertisers.
ZDNET's editorial team writes on behalf of you, our reader. Our goal is to deliver the most accurate information and the most knowledgeable advice possible in order to help you make smarter buying decisions on tech gear and a wide array of products and services. Our editors thoroughly review and fact-check every article to ensure that our content meets the highest standards. If we have made an error or published misleading information, we will correct or clarify the article. If you see inaccuracies in our content, please report the mistake via this form.
GitHub vs GitLab: Which program should you go with?
Both GitHub and GitLab are based around the overarching Git distributed control system, but they do have different development approaches. For your own content tracking, which works better? Let's find out.
People often ask me: "Which distributed version control system should I use for my programming project, GitHub or GitLab?"
For starters, If all you're doing is building an in-house program, all you need is a local Git instance that you can use by itself on your own server. You can also use Git as a centralized VCS on your own servers or cloud. There's no need to subscribe to a VCS service when you can build your own. With this model, you can easily run a project with your team and partners scattered throughout the world.
If you do need the bells and whistles of a hosted Git service, however, then let me break it down -- from the differences in software services to similarities in interfaces and core values.
Another important difference is GitHub prioritizes speed, while GitLab focuses on reliability.
Branches: merge or separate?
Specifically, GitHub advocates merging new branches (your new and unique changes) with the master (main) branch. That way, you're set up to quickly deploy, and you can speedily reinstate your old version if something goes awry.
In GitLab's workflow, you create multiple yet separate stable branches beyond that of the master branch for each set of changes you make. At a minimum, you'll have production and pre-production stable branches. The multiple branch approach does require a multiple-step testing process. A single code review upon the merge request isn't enough.
Of course, you can make either one work the way you want, but there's a clear difference between the two systems' advocated approaches.
Another core difference is that GitLab offers you a complete software development solution. They advertise themselves as a complete DevOps platform for a reason. That said, GitLab does offer integrations with some third-party programs and platforms such as Jira, Microsoft Teams, Slack, Gmail, and numerous other apps and platforms.
While both support open-source, the repositories themselves use a mixed programming model. GitLab used an open-core business approach. In this model, the GitLab Community Edition remains free and open-source, while the GitLab Enterprise Edition has more features and comes with support.
Still, fundamentally, both offer web-based repositories with open-source, Git-based code management and local file changes with a remote repository. So, if all you want is basic Git functionality but with someone else to worry over keeping Git up and running, either service will do well for you.
That said, GitHub is clearly the 800-pound gorilla of the VCS world. According to the programming tools company JetBrains, 77% of developers use GitHub regularly compared to 40% for GitLab and 25% for BitBucket.
Both services offer free plans. These come with unlimited public and private repositories. That may be enough for you if you're a solo programmer or have a small team. But, if programming is your company's living, you'll need more.
It's difficult to compare GitHub and GitLab's pricing. It's apples and oranges. I suggest starting with their free plans to get an idea of how your workflow operates on each platform and then look into subscribing to the one that works best for you.
The costs of subscriptions should be the least of your concerns. I've used both, and, for my small-time programming purposes, they have worked extremely well.
That said, GitLab's Premium plan costs $19 a month per user, while the full-featured Ultimate plan is $99 a month. As for GitHub, the Team plan is $40 a year per user, and the Enterprise plan is $200 a year per user. But, the devil is the details. You may well find you'll need to pay for extras no matter which service you finally subscribe to.
However, don't let price be your guide. What really matters is which Git VCS will give you the tools and services you need to best develop your software.
Why a VCS (aka Source Code Management system)?
A VCS makes it easy for multiple developers, designers, and team members to work together on the same project, ensuring that everyone has the same access to the latest code and can track all modifications.
All of that seemingly smooth cross-communication is easier said than done. That's why Linux software engineer, Linus Torvalds, thinks of Git as his other great invention.
Git is free, open-source (publicly accessible), and fast. It also works better than its predecessors, such as Apache Subversion, Concurrent Versions System (CVS), Perforce, and Rational ClearCase. So, there's a reason why so many VCS services have "Git" in their names.
Who created GitHub?
GitHub is the oldest of the services. It was developed by Chris Wanstrath, P. J. Hyett, Tom Preston-Werner, and Scott Chacon using Ruby on Rails in February 2008. Because of its first-mover advantage, GitHub became the home base of many open-source code repositories.
GitLab came later; Ukrainian developers Dmitriy Zaporozhets and Valery Sizov created GitLab in 2011. From day one, GitLab was designed to be a set of collaboration tools as well as a code repository service.