About this book

GitLab is a great tool suite used to develop software quickly, safely, and efficiently. Watch your developers get into a productive loop within your own network! Code Version Control is now easy to administer and fast to set up with the help of GitLab.

Starting with the installation of GitLab, GitLab Repository Management will guide you through learning how to use permission management and other features, such as issue tracking and wikis. You will get a look at the technology that drives this open source project and learn how to connect it with your infrastructure.

This guide will show you how to use GitLab as a primary tool for version control, collaboration, and issue tracking. It will make you a capable maintainer and give you an understanding of how to make the most of this tool.

Building efficient teams of developers will change the outcome for the better, as you decide who to put in charge and whose access you can restrict. Keeping your code safe while being open to feedback, is the key to making your products something that your users will love. Documenting large projects can be challenging, but you will learn how to overcome these challenges using GitLab’s built-in wiki functionality.

Publication date:
November 2013


Chapter 1. Kickstarting with GitLab

Keeping your code close and private, when you want to, is surely as important as easily sharing it and letting the community contribute. GitLab (http://gitlab.org) understands this and lets you self-host Git repositories that fit your company or team. In this chapter, we will cover what is GitLab and the points that stand out the most when compared to its competitors.

Topics covered in this chapter are as follows:

  • GitLab features

  • Where GitLab excels

  • Cloud-hosted GitLab

  • Support for your own GitLab

  • Competitors

In this chapter, we will take a look at what features are available, how you can use them, and which competitors are worth examining.


What is GitLab?

GitLab is a system for managing Git repositories. It's written in Ruby, and allows you to deploy meaningful version control for your code easily.

It was first published on GitHub in October 2011, and has grown into a powerful tool since then. GitLab is published under the MIT license, but it is mandatory to keep a mention of the author when redistributing the code.

The lead developer is Dmitriy Zaporozhets, who also runs a hosted platform for GitLab installations at gitlab.com.

GitLab features

GitLab has many features. The most outstanding ones, surely, are the user-friendly web interface and the possibilities of managing permissions. The built-in features for documentation of projects or tracking needed changes with the issue tracker are very strong points for GitLab.

Web interfaces

The web interface resembles the one of GitHub in many cases, which has proven very functional to many developers.

It is very consistent and plain, in spite of the quantity of functions it contains. It's possible to open merge requests for branches, view diffs, or even edit files right in the web interface, and then stage the changes to a commit.

Managing permissions

Who has the permission to do what, and how easy is it to add and change team members? These are the key questions you should ask yourself when dealing with administering users on any platform.

GitLab has some very well-designed roles, and allows you to apply these. From guest to master, you have diverse possibilities to limit and grant access to functions such as pushing to repositories or which branches a developer can push to, so that you can control which code ends up in your product or project.

Documenting your project

Documenting projects can be a difficult thing to track, because it is often not described as an important task from the start; but, with GitLab you have great tools for making it more meaningful and faster to create. Through built-in issue tracking and wikis, you can cross reference files, commits, and of course other wiki pages. These are great tools that can enable your team to keep everybody on the same page and prevent projects, no matter how complex, from growing into something that is hard to understand.

Where GitLab excels

Anyone who develops software or manages software development can benefit from using GitLab. The core concept of Git is to get distributed to keep revisions of your code maintainable and make a team work together more efficiently.

Git is great at these things. The problem, which especially is an obstacle for beginners, is that it does not present this very clearly.

Everything it shows is in a terminal window, and without using additional software around it. It's not a very intuitive experience if you don't have years of experience with the command-line interface or similar tools.

GitLab is like a user-friendly layer on top of Git, which provides ease of use, easily managing permissions with clicks, instead of long shell commands. It has a much more visual workflow that increases your speed and ease of working with Git.

Also, it makes it much easier to help the newly hired developers to get started, or update the head of your department on the state of a project—all in the browser. Developers who join a project months after it has been kicked off can easily get an overview, check the progress, and understand it quickly.

GitLab allows you to use the full potential of Git, without demanding you to work only in the terminal on the server side.

Cloud-hosted GitLab

If you choose not to host GitLab yourself, but to let the people who know it best host it for you, you can subscribe to a dynamic subscription model at http://www.gitlab.com/cloud/. Hosting is free up to 10 users, which gives small development teams a chance to try it out before making a commitment. In case you need more contributors, you can sign up for a paid plan.

At the time of writing this, up to 15 users is as cheap as 9 USD a month; whereas, a maximum of 25 will cost you 49 USD; and the largest solution with support of a 1000 contributors is 1999 USD a month.

Support for your own GitLab

If you need support for your own installation of GitLab along the way, a support subscription right now (at the time of writing) is priced at 149 USD a month, according to http://www.gitlab.com/subscription/.

Consider a support plan if you have a system administrator who does not want to compromise other tasks for either troubleshooting or optimizing the new GitLab installation.


GitLab is not the only solution of this kind. It's my favorite because of the ease of installation and maintenance, the easy-to-grasp interface, and it is quick in production. Another open source solution you can deploy yourself is Gitorious. You can take a look at their free web hosting solution for public repositories.

GitHub, of course, is an outstanding service in terms of usability, design, and much more; but, it only offers free hosting of public repositories. It is a platform of choice when you are aiming for gathering contributors around your project, because it has such a large community.



Now you've read what GitLab is all about and how it is available, both for you to install and as a hosted service. We've scratched the surface of features that grant administrators flexibility and control and the interfaces that provide usability for the users.

In the next chapter, we are going to cover the installation process and how to set up your own copy of GitLab on a server of your choice.

About the Author

  • Jonathan M. Hethey

    Jonathan M. Hethey has been writing code since the age of 14 and has actively participated in shaping and experimenting with the IT systems around him. After finishing his finals and an apprenticeship as an IT supporter, he studied Multimedia Design in Kolding, Denmark, followed by studies of Web Development in Odense, Denmark. Besides his studies, he has been working on several web projects—both on a freelance basis and in his company which was founded in 2011. Because programming and working in teams efficiently are keys to success in a rapidly changing industry, whether we are speaking of app development or creating beautiful web experiences, he quickly became a fan of Git, and started looking for great implementations of it on the server-side that would allow newcomers to pick it up quicker and extend it with additional functionality and usability.

    Browse publications by this author
Book Title
Unlock this full book FREE 10 day trial
Start Free Trial