Git

Is version control software designed specifically to keep track of the changes made to files over time. In other words, Git is a distributed revision control system which means that every Git directory on every computer is a full-fledged repository with the full history of the project, not just the current state of the files.

Github

is a well-known web-based code hosting Git repository for version control. It provides distributed revision control with source code management of Git alongside its various other features. It is a website where you can upload a copy of your repository. It allows developers to collaborate and work from anywhere in the world. It does so by providing a centralized location to every repository. Unlike the Git(software), which is a command-line tool, it provides features like the web-based graphical interface and pull requests issues, which allow its users to specify, review changes and discuss with team members.

Github Repositories

Github offers free accounts for public repositories and paid accounts for private repositories. Github’s Public repositories are freely available and are mostly used for open source projects hosting. While both registered and unregistered users can view and use public repositories but only registered users can discuss, manage, create repositories, submit contributions to other repositories and can look to previous changes to the code. Github Enterprise was designed specifically for use by large-scale enterprise software development teams.

History

Github site was launched in April, 2008. It was written in Ruby on Rails and Erlang by Github’s, Inc. founders & developers Tim Preston-Werner, Chris Wanstrath, and PJ Hyett. Recent Github reports show that it has more than 14 million users with over 38 million repositories, making Github the world’s largest repository for source code. Companies that are using Github and engage in open source are Google, Adobe, Twitter, PayPal, LinkedIn, Yahoo, Facebook etc.

Features

Github is much more than just a place to store Git repositories. Its additional features include:

  • Integrated issue tracking with milestones and labels.
  • Pull requests for code review and comments
  • Easily watch & manage teams by getting updates when changes are made to a project.
  • Quick work of mentioning people and teams, creating links to other issues.
  • Attaching file is simple by dragging and dropping from the desktop.
  • Syntax highlighting supports over 200 programming languages syntax.
  • Support data & visualization formats like STL 3D models, CSV files and GeoJSON maps in the browser.

Gitlab

Like GitHubGitLab is a web-based Git repository manager that allows diverse/distributed team members to collaborate on code, test, and duplicate code to safely create and edit new projects, then merge finished code into existing projects. It provides Git repository management with smooth access controls, wikis, activity feeds, code reviews, issue tracking and continuous integration. The company offers hosted accounts similar to Github and also allows it to be used on third-party servers. Gitlab was founded with the vision that everyone can contribute to all digital content.

Gitlab Repositories/Editions

GitLab Inc. has 4 types of repositories or editions:

  1. GitLab Community Edition – free, self-hosted application, support from Community.
  2. GitLab Enterprise Edition – paid, the self-hosted application comes with additional features and support.
  3. com– free SaaS for public and private repositories, support can be purchased.
  4. io– a single tenant solution that provides Gitlab CE or EE as a service.

History

Gitlab was written in Ruby by Dmitriy Zaporozhets. Gitlab reports show that it has more than 1000 open source contributors and it is used by more than 100,000 organizations including NASA, Alibaba, CERN, IBM, EA, Sony, Ericsson, Intel, Lockheed Martin etc.

Features

Gitlab features like permissions, authentication and branch protection are making it popular among other web-based Git repositories.

GitLab has everything that GitHub has, and giving teams increased control over their repositories. Its extra features include:

  • A convenient user interface enables Gitlab users to access everything from one screen: projects, latest projects, users etc.
  • “Code Snippet” allows users to share a small chunk of code from a project, rather than sharing the whole project.
  • Protected branches, this new way of keeping code safe allows only specific people to push, force push or delete in a branch.
  • Authentication levels, this allows users to give permissions to other users/team members beyond read/write level.
  • Improved milestones allow users to set milestones at a group level, rather than just a developer-specific level.
  • The “Work in Progress” status prevents from merging of code with the unfinished work.
  • Attach files like comments to any communications in GitLab.
  • “INNER SOURCING” WITH GITLAB- This exciting collaboration feature enables developers to easily browse and share projects active in that company and can contribute by sharing skills in other projects of the company as well.

Github vs Gitlab, Comparison:

 

Authentication Levels

Both allow users to assign different permissions to modify people’s role.

Attachments to issues

You can attach any file to any issue or comment in Gitlab but that’s not the case in Github.

Work-in-Progress Protection

This ‘Work in Progress’ title prevents merging of finished code with the unfinished one.

Innersourcing

This Gitlab feature allows developers to browse and share other projects active in the company and can contribute by sharing skills in other projects of the company.

Issue Tracking

Issue tracker of gitlab is more powerful than github’s issue tracker and interface of gitlab is rather easy to use as compared to github.

 

Features GitHub GitLab
Launched April 2008 September 2011
Pricing Free for public repositories / Paid plans for private repositories Unlimited public and private repositories / unlimited public and private collaborators
Issue tracking Yes Yes
Wikis Yes Yes
Code review features Yes Yes
Protected branch Yes – paid plans Yes
Build system Yes -3rd party service Yes
Self-hosting Yes -with enterprise plan Yes
Detailed pricing plan Free: public projects / $7/month: Personal plan / $21/month: organization plan / $2.500/year: Enterprise Free: gitlab.com / Free: GitLab Community Edition / $39 / Year: GitLab Enterprise

 

GitLab Enterprise vs GitHub Enterprise

On an enterprise level, there are other factors that must be considered when making any decision on whether to use GitLab or GitHub. If you just consider cost factor, gitlab has the most competitive pricing plan of $39/year (per user) as compared to github’s $ 2500 per 10 users/year. So, it is better to consider other factors as well, before choosing any one of the two.

Final Verdict

GitLab is still new as compared to Github and if it wants to compete with Github on a user level, it has a long way to go. There is no doubt in the fact that Gitlab is a cheap and great (probably one of the best) alternatives to Github offering, some good features, and benefits which enterprises might miss in Github. If the price is not an issue, you don’t mind closed-source, and you’re OK with its installation options then choose GitHub Enterprise Edition.