What are the differences between GitHub and GitLab?


The question often comes up: which distributed version control system should I use for my programming project, GitHub or GitLab?

The reflection is not simple, and the writing of ZDNet offers to dissect it.

Do you really need a distributed version control system?

The role of a version control system (VCS), also known as a source code management tool (SCM), is to facilitate the collaboration of several developers, designers and team members on the same project. It ensures everyone has equal access to the latest code and that changes are tracked.

That’s why Linus Torvalds, the founder of Linux, considers Git his other great invention. Git is free, open source, and fast. It also performs better than its predecessors – Apache Subversion, Concurrent Versions System (CVS), Perforce and Rational ClearCase. There’s a reason so many VCS services include “Git” in their name.

Of course, you can use Git alone on your own server. If you’re just developing a program in-house, a local instance of Git is all you need. You can also use Git as a centralized VCS on your own servers or in your cloud. There’s no need to subscribe to a VCS service when you can build your own. With this template, you can easily manage a project with your team and partners scattered around the world.

GitHub vs. GitLab

Still, if you need the benefits of a hosted Git service, it’s time to consider GitHub and GitLab.

GitHub is the oldest of the services. It was developed by Chris Wanstrath, PJ Hyett, Tom Preston-Werner, and Scott Chacon using Ruby on Rails in February 2008. Thanks to its pioneering edge, GitHub has become the home base for many free code repositories.

GitLab came later; Ukrainian developers Dmitriy Zaporozhets and Valery Sizov created it in 2011. From day one, GitLab was designed to be a collection of collaboration tools, as well as a code repository service.

Similarities in shambles

The two platforms are very similar. They both run on Linux servers, have an issue manager, and offer a wide range of integrations and third-party import tools. They also both have command line interfaces (CLI) for advanced developers, and also offer web interfaces for new programmers.

In the case of GitLab, the user interface uses GitLab’s own Pajamas design system, and is written in Vue.js.

GitHub’s desktop user interface is available as a Windows or macOS program. You can also now use Visual Studio with GitHub.

Two visions of open source

While both platforms support open source, the repositories themselves use a mixed programming model.

GitLab uses an open-core business approach. In this model, the Community edition of GitLab remains free and open source, while the Enterprise edition of GitLab has more features and comes with support.

As for GitHub, if its code contains any part of open source code, it is not an open source project. Both platforms offer web-based repositories with Git-based open-source code management and local file edits with a remote repository.

If you’re looking for basic Git functionality, but with someone else to keep Git running, either of these services will be fine for you.

GitHub and Microsoft

Some people don’t like GitHub because Microsoft acquired it in 2018. For some, the software giant will always be the Evil Empire, even though the company now backs open-source methods and software — and even though its CEO, Satya Nadella, claims to love Linux.

While some users did indeed flee GitHub for GitLab and Atlassian BitBucket at the time, however, the exodus was not as massive as some expected.

GitHub is still the behemoth of the VCS industry. According to programming tools company JetBrains, 77% of developers regularly use GitHub, compared to 40% for GitLab and 25% for BitBucket.

Fundamental differences

The main difference between the two platforms is that GitLab integrates continuous integration/continuous delivery (CI/CD) and DevOps workflows. GitHub lets you work with any CI/CD tools you want, but you’ll need to integrate them yourself. Typically, GitHub users work with a third-party CI program like Jenkins, CircleCI, or Travis CI.

Another important difference: GitHub prioritizes speed, while GitLab focuses on reliability. Specifically, GitHub advocates merging new branches with the master branch. This way it is possible to deploy quickly, and also to quickly revert to an old version if something goes wrong.

In the GitLab workflow, you create multiple stable branches beyond the master branch. At a minimum, you will have stable production and pre-production branches. This means that you will have to go through a multi-step testing process. A single code review when requesting a merge is not enough. You can, however, operate either as you wish, but there is a distinct difference in the preferred approach.

Very diversified offers

Another fundamental difference is that GitLab offers a complete software development solution. It’s not for nothing that it presents itself as a complete DevOps platform.

That said, GitLab offers integrations with third-party programs and platforms like Jira, Microsoft Teams, Slack, Gmail, and many other apps and platforms.

GitHub, on the other hand, has fewer services within its own program, but it offers ways to integrate with many outside programs and services. Including software that GitHub has worked on to integrate with the service and hundreds of other programs through the GitHub Marketplace.

Pricing

Both services offer free subscriptions. These include an unlimited number of public and private repositories. The free version may be enough for you if you are a solo programmer or have a small team.

But if programming keeps your business alive, you’ll need more. However, it is difficult to compare the prices of GitHub and GitLab. It would be like comparing apples and oranges. It might be best to test both with the free plans, to get a feel for how your workflow works on each platform, and then subscribe to the one that works best for you.

Don’t let the price guide you. What really matters is which platform will give you the tools and services you need to develop your software to the best of your abilities.

Source: ZDNet.com





Source link -97