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: