Before exploring GitHub and GitLab, let's clarify what Git is. During a Software Development Life Cycle(SDLC), the source code undergoes multiple changes. New versions of it are created by the development team every day. Just like with video games, in programming, every decision you make can be consequential.
If you make a bad decision, the entire course of the game may go in the wrong direction. How to avoid that? Instead of playing the game all over again, players usually revert to a saved checkpoint and start again from there.
Git is the tool that ensures those checkpoints are in place. During the development process, developers can roll back to the previous version of source code and make changes if needed. Additionally, Git makes it possible for developers to find code added by them or other developers at any point of SDLC.
Thus, Git is a version-control system for tracking changes in the source code during an SDLC. It was initially designed by the Linux creator, Linus Torvalds, in 2005. Version control systems weren't a new concept. But since then Git took a major leap, becoming the preferred solution for many projects, both commercial and open-source. Today, it's an open-source, free tool.
Git can be initialized in a project to create a Git repository. After you install Git, you will see that a Git repository is a folder inside a project that contains a history of changes made to files in a project over time.
Let's start with the basics. GitHub is a Git-based repository hosting platform with 50 million users (July 2020). Originally, GitHub launched in 2008 and was founded by Tom Preston-Werner, Chris Wanstrath, and PJ Hyett.
Similar to GitHub, GitLab is a repository manager which lets teams collaborate on code. Written in Ruby and Go, GitLab offers some similar features for issue tracking and project management as GitHub.
Founded by Dmitriy Zaporozhets and Valery Sizov in 2011, According to their website, GitLab is used by more than 1,00,000 organisations today which include enterprises such as IBM, Sony,EA,Goldman Sachs and NASA.
GitLab used to provide free private repositories for unlimited users to collaborate and now GitHub has joined the party by doing the same but the difference lies in the amount of storage provided by both platforms. GitHub provides 500 Mb whereas GitLab provides 10Gb for the repository space,So this round goes to GitLab by a small margin.
The great feature of GitLab was its inbuilt CI/CD system,which now is getting a run for its money as GitHub recently announced GitHub Actions which is GitHub's own CI/CD system.
Yet, because GitLab has been offering its own CI/CD tool for so many years, we can confidently say that GitLab CI/CD is way ahead of GitHub. As a matter of fact, the Continuous Integration framework inside GitLab is ranked as one of the best tools out there, if not the best.
But what's cool about GitHub's new CI/CD tool is its new features called "matrix builds." It allows you to run multiple versions of your applications in parallel.Pretty cool right?
So we have a tie in this round.
The above mentioned image will give you an overview of the features that both the platforms give in DevOps cycle.
GitLab is ahead of GitHub in many aspects here,it has been the same for many years in the DevOps arena.In the past people moved from GitHub to GitLab due to this feature alone.So this round clearly goes to GitLab.
When it comes to importing data we have a weird sense of tie.On GitLab we have an extensive amount of documentation which makes the work a lot easier but on the other hand GitHub compensates the lack of documentation with an awesome tool to import our work.
The only area where GitLab shines here is exporting as Git hub has lack of documentation ,So you might have a hard time exporting your files whereas GitLab has good documentation for importing and exporting.
So this round goes to GitLab.
This is a great area for GitHub to shine as GitHub is the home for 50 million people on our planet whereas GitLab is nowhere near to this number.With great events and a better developer interaction GitHub takes the spot for #1 for community engagement.So, this round goes to GitHub.
A great distinguishing factor for a user is the user interface. GitHub crushes GitLab in this area with its stunning user interface which comprises of a better and more intuitive workspace.This makes a new user to come at ease while working on GitHub.
So this round goes to GitHub.
When i talk about hosting repositories on my own server i can surely say that GitHub does not offer any such feature whereas GitLab does provide us with an option to choose the hosting service.This gives GitLab another point over GitHub.
Well pricing is something that i cannot comment on as the pricing is a decision which will be dependent on the situation and the organisation/team.But i will provide the difference by images shown below.We do not have a specific winner for this round.
GitLab provides us with a web IDE to support the coding directly from the browser and not getting dependant on an external software.This might not be deal breaker for people but it is good to have various features for free. GitHub does not provide any IDE for coding inbuilt inside the platform.With GitHub desktop they might be going towards this feature but time will only tell if we ever get to see an IDE inside GitHub.So this round is won by GitLab.
With new features rolling every 22nd day of a month we can surely say that GitLab promises for new updates and innovation really fast.Whereas this is all great but there is a dark side to all of this glitter as many a times the new coming feature is not in 100 percent working condition, so you have to take this point with a grain of salt.So this point is a personal preference.
GitLab provides with different authentication levels to users working on a repositories ,so we have distinction of people which are working on a project. GitLab tries to make the work a little more decentralised with different permissions for different group of users .I like the sound of that but personally i like the GitHub's normal ownership feature by person making the repository.Again this point is also dependant to personal opinion but if i have to mark a platform for features i will surely give GitLab another point.
This section is specially designated to throw some light on some minute features which we have exclusively on GitLab. These features are not necessarily a deal breaker but a good feature should be appreciated in any small way possible.We would not mark both platforms on these features.So let us begin the countdown-
GitLab provides us with a feature to have due dates or deadlines on a specific issue.This makes the workflow punctual and time bound.Milestones is another way to tell users what all things are to be expected in future of the development cycle.
We can have different weights added to issues which helps us identify the severity of a specific issue.This is somewhat equal to adding labels with severity of issues on GitHub.
A great tool for teams and owner of teams is monitoring data that is provided by GitLab. This helps to work on specific aspects of teamwork.This small feature comes handy when we have a large organisation working on a repository,where small problems result in massive workflow losses.
With all these features both of our platforms are a true beauty to behold in software development industry.These two platform help a great number of developers and tech enthusiast write and store beautiful code on their repositories around the globe.With the score that we are keeping we have our winner as GitLab!(with 7 points) whereas GitHub had(3 points).But these markings are not an ultimatum.Obviously at the end of the day people have their own preferences which would lead for them to use any of the given software platform mentioned.