GitLab Tutorial: Master Version Control & CI/CD for Seamless Development
If you are looking for a better way to organize your project files, you should consider using GitLab. The beauty of GitLab is that it allows all team members to collaborate in all phases of a project, simplifying software development for all involved. In this GitLab tutorial for beginners, you will learn how to use GitLab’s main features to manage your files and increase productivity (and even learn how Gitlab time tracking works with a help of Gitlab time tracking integration!)
❓ What is GitLab?
To kickoff our GitLab tutorial, let’s give it a definition. GitLab is a web-based Git repository that allows software development teams to plan, code, test, deploy and monitor product changes in one place. Git is a source code versioning system that allows you to track changes and push or pull changes using remote resources.
The platform provides both free open and private repositories, issue-following features, and wikis. It enables teams to collaborate on project tasks, from the early planning stages to software launches and monitoring. GitLab is a popular tool with developers because it helps to improve the software product lifecycle, which translates to more value for users.
🚩 GitLab Basics
First, we’ll run through the GitLab tutorial basics, including the platform’s main features, pricing, and installation. What does it do, what does it consists of, how to use it, and everything you might need to know to use it.
GitLab offers powerful planning tools to keep your team in sync. The platform enables planning and management through epics, milestones, and groups, allowing teams to organize and track GitLab project progress.
GitLab tutorial wouldn’t be complete without mentioning that GitLab allows you to create, view, and manage project data and code through branching tools. The platform helps you plan, organize, align, and then track project work to ensure all team members are working on the right tasks.
Ensure strict quality standards are enforced for production code with automatic reporting and testing. GitLab’s capabilities enable a range of testing types to provide quick feedback to testers and developers about their code’s quality.
GitLab offers built-in package management, allowing teams to package applications and dependencies, build artifacts and manage containers easily.
GitLab provides a range of security capabilities, including Dynamic Application Security Testing (DAST), Static Application Security Testing (SAST), Dependency Scanning, and Container Scanning, enabling teams to create and maintain secure applications.
GitLab enables you to view, sort, and automate the release of applications, which significantly shortens the delivery lifecycle and streamlines processes. GitLab’s integrated Continuous Development solution allows you to release software with zero-touch, regardless of the number of servers.
GitLab allows you to configure applications and infrastructure, as strong integration to Kubernetes reduces the effort required to define and configure supporting infrastructure.
GitLab enables you to reduce the frequency and severity of software incidents, so you can release software knowing that all will go to plan.
GitLab gives you valuable insights into how your business is performing. You can manage and optimize team performance and the software delivery lifecycle with metrics to streamline processes and increase the frequency of software releases.
For example, you can gain insights into the performance of individual users, subgroups, and projects such as triage hygiene, issues created or closed in a given period, the average time for merge requests to be completed, and more. Plus, you can generate DevOps reports, usage trends overviews, and audit reports, allowing you to determine if changes are needed to improve business processes.
Did you know that you can utilize GitLab time-tracking integrations? For example, if you need employee time tracking functionality to monitor the time you and your team spend on the issue and merge requests, but you also need access to a time clock app/timesheet app, work hours tracker, and an attendance tracker, consider integrating GitLab with a time tracking app with all of these useful features. You can also use those integrations to extract Gitlab time tracking reports to facilitate your project management process. There are dozens of time tracking tools available today, but popular choices include Everhour, TrackingTime, TimeCamp, and DeskTime.
Hosting & installing
Many prefer to use GitLab in Linux, as GitLab software is custom-made for the open-source operating system and is mature and scalable. You can install GitLab on Windows, but there are some restrictions. To get around this, you can install GitLab Runner.
Once you have installed GitLab, created an account, and logged in, you will be presented with various options, including creating a project or a group. You can also explore public GitLab projects that may pertain to your work.
The free plan includes 5GB storage, 10GB transfer per month, 400 CI/CD minutes per month, and five users per namespace.
The premium plan includes everything from the free plan, as well as faster code reviews, self-managed reliability, enterprise agile planning, release controls, advanced CI/CD, 10,000 CI/CD minutes each month, and additional support.
The ultimate plan includes everything from the premium plan, as well as advanced security testing, vulnerability management, compliance pipelines, portfolio management, value stream management, 50,000 CI/CD minutes per month, support, and free guest users.
🔧 How To Use GitLab
If you haven’t used GitLab before, it may appear intimidating at first. But don’t worry, it’s a learning curve—after using the platform for a while, you’ll learn the ins and outs of GitLab and it will soon become second nature. Using this GitLab tutorial, you should be able to quickly learn how to navigate the platform.
How to create a project
The majority of work done on GitLab happens within a project, as code and files are saved in projects.
- To create a project in GitLab, you select Menu > Project > Create new project.
- You will then be presented with the Create a new project page, where you can either create a new project or create a project from a built-in template, custom template, or a HIPAA audit protocol template.
Alternatively, if you are a GitLab administrator, you can import a project from another repository.
How to create a project from a template
A built-in GitLab project template fills a new project with files to help get you started.
- To create a project from an established built-in template, select Menu > Projects > Create new project and select Create from template.
- Next, click the Built-in tab and view template previews.
- Once you find a suitable template, click Use template.
- Next, enter the project details, including Project name, Project slug, and Project description. You can also change viewing and access rights by changing the project Visibility level.
To create a GitLab project from a custom template, follow the above steps, but rather than Built-in, choose Instance or Group tab. You can preview templates, and once you have found a suitable template, select Use template and enter the project details.
How to create a group
You create groups in GitLab to manage one or more projects simultaneously and manage permissions. If someone has access to the GitLab group, they will have access to all projects within the group. Another benefit of creating a group is that you can view all issues and merge requests for all projects in the group and access analytics for all activities within your chosen group.
- To create a group in GitLab, you select Menu > Groups > Create group.
- Then, to the left of the search box, you select the plus sign and click New group.
- Select Create group and enter a group name. Be mindful that some group names, if used, would be in conflict with existing routes used by GitLab. As a result, there are some reserved names that you cannot use.
- Next, enter a path for your group in Group URL, which is used for the namespace, a unique name for a user, group, or subgroup.
- Then, choose a visibility level (public, internal or private) and personalize the group by defining your role, who will be using the group, and what the group will be used for.
- Then, all that is left to do is invite all relevant GitLab members to join the group.
Project forking workflow
When working in a Git repository, it is recommended that you use branching strategies to manage work effectively. But if you do not have write access to the repository of your choice, you can create a fork. A fork is a duplicated version of the original repository where you can make changes without affecting the original project.
- To create a fork in an existing GitLab project, select Fork on the project’s homepage.
- Then, if you want to, edit the Project name.
- For the Project URL, select the namespace where your fork should reside.
- Next, add a Project slug, which is added to the fork URL. Please note that it must be unique in the chosen namespace.
- If you like, you can add a Project description to provide context.
- Then, you need to select the Visibility level for your new fork.
- Select Fork project. Once you have done that, you will be redirected to the new fork’s page.
- If you find that you need to remove a fork, select Settings > General > Advanced.
- Then, select Remove fork relationship and confirm this action by typing the project path.
- Please note that only project owners have the necessary permissions to remove a fork relationship in GitLab.
👍 GitLab Tutorial: Final Thoughts
Even though GitLab has lots of outstanding GitLab alternatives, it is an excellent platform for software developers as it offers in-built compliance features, scalability, a range of deployment options, and other useful capabilities.
In this GitLab tutorial, we have explored GitLab’s main features and explained how to create projects, groups, and forks. Once you have mastered the basics, there is still plenty for you to learn about the platform. We hope this how-to GitLab guide has been helpful by allowing you to quickly get started with the platform!