Skip to content

GitLab

Purpose

This page describes GitLab as a platform for managing version-controlled code and collaborative software development.

It covers:

  • the structure of repositories
  • how changes are tracked
  • how collaboration is organised

This page does not provide instructions for using GitLab.


Overview

GitLab is a platform for hosting and managing repositories that use version control.

It provides a central environment where code can be stored, accessed, and maintained by individuals or teams.


Repositories

A repository is a structured collection of files and their history.

Repositories contain:

  • code and scripts
  • configuration files
  • documentation
  • a complete history of changes

Each repository tracks changes over time.


Version control

Version control systems track changes to files.

This allows:

  • recording changes over time
  • restoring previous versions
  • understanding how code has evolved

Changes are recorded as a sequence of updates to the repository.


Branches

Branches represent parallel lines of development within a repository.

They allow:

  • independent work on different features or tasks
  • isolation of changes before integration
  • multiple versions of the code to exist simultaneously

Merge requests

Merge requests are used to combine changes from one branch into another.

They provide a structured way to:

  • review proposed changes
  • discuss modifications
  • integrate updates into the main codebase

Access and permissions

Access to repositories is controlled through permissions.

Permissions determine:

  • who can view a repository
  • who can make changes
  • who can manage repository settings

Repositories may be private or shared with specific users or groups.


Relationship to other systems

GitLab is part of the research software environment.

It is used alongside:

  • storage systems for managing data
  • compute services for running analysis

For execution guidance, see: