Git Course 0%

Git, GitLab, GitHub: terminology map

Three vocabularies describe the same work: Git's, GitLab's and GitHub's. This page sets them side by side. For definitions rather than translations, use the glossary; for what actually differs beyond names, read GitLab vs GitHub.

Containers and people

Concept Git GitLab GitHub
The versioned files and history Repository Project Repository
Grouping several of them Group, and subgroup (nests) Organization (does not nest)
Grouping people Group membership Team (nests)
Your own copy of someone else's Clone Clone Clone
A server-side copy you can push to Fork Fork
Contributor role Developer Write
Runs the project's settings Maintainer Admin
Read-only participant Guest or Reporter Read
Manages issues without pushing Planner or Reporter Triage
Owns and can delete Owner Admin

Tracking work

Concept Git GitLab GitHub
A unit of work Issue Issue
A named goal with dates Milestone Milestone
Grouping issues visually Issue board Projects
A larger container of issues Epic Parent issue or a Project field
Free-form conversation Issue or wiki Discussion
Tagging for filtering Label Label
Repeating time box Iteration Iteration field on a Project

Proposing and reviewing a change

Concept Git GitLab GitHub
A line of work Branch same same
Proposing to merge it Merge request Pull request
Not ready yet Draft: title prefix Draft state
Where the change is going Target branch Base
What is being proposed Source branch Compare
The diff view git diff Changes tab Files changed tab
Commit list git log Commits tab Commits tab
Automated results Pipelines tab Checks tab
Batched review Start a review Start a review
Blocking verdict Unresolved threads Request changes
Proposed replacement text Suggestion Suggested change
Applying it Apply suggestion Commit suggestion
Required reviewer by path CODEOWNERS CODEOWNERS
Combining into one commit Squash Squash and merge

Rules on branches

Concept Git GitLab GitHub
A branch nobody may push to directly Protected branch Ruleset, or a branch protection rule
Requiring review Approval rules Require approvals
Requiring green automation Pipelines must succeed Require status checks
Forbidding history rewriting Force push disabled Block force pushes
Extra commit content rules Push rules Rules in a ruleset

Automation

Concept Git GitLab GitHub
The whole automated run Pipeline Workflow run
Its definition file .gitlab-ci.yml .github/workflows/*.yml
A phase Stage Job dependencies (needs)
A unit of work Job Job
A command inside it A line in script A step
A reusable piece include, templates Action
The machine Runner Runner
Files kept afterwards Artifact Artifact
A secret for the run CI/CD variable (masked, protected) Actions secret

Releases

Concept Git GitLab GitHub
A permanent name for a commit Tag same same
The page describing a version Release (Deploy → Releases) Release (Releases)
Drafting one New release Draft a new release
Auto-written notes From the attached milestone Generate release notes
Unfinished version Upcoming release Pre-release

Credentials

Concept Git GitLab GitHub
A password substitute for HTTPS Personal access token Personal access token (fine-grained or classic)
Key-based identity SSH key SSH key
A credential for one project Project access token Fine-grained token scoped to it, or a GitHub App
A key for one repository, no person Deploy key or deploy token Deploy key
The automatic token in a run CI_JOB_TOKEN GITHUB_TOKEN

Writing and editing

Concept Git GitLab GitHub
Editing one file in the browser Edit Edit (pencil)
A full editor in the browser Web IDE (press .) github.dev (press .)
A cloud machine that can run code Remote development Codespaces
A shareable fragment Snippet Gist
Free-form pages Wiki Wiki
Published static site GitLab Pages GitHub Pages

Phrase book

Instructions written for one platform, translated:

Written as Means on the other
"Open an MR against main" "Open a pull request with base main"
"Make them a Maintainer" (GitLab) "Make them an Admin" (GitHub), not "Maintain"
"Give them Write" (GitHub) "Give them Developer" (GitLab)
"The pipeline is red" "A check failed"
"Add it to the board" "Add it to the Project"
"Resolve the threads" "Resolve the conversations"
"Apply the suggestion" "Commit the suggestion"
"It is in a subgroup" No equivalent; it is a repository in the organization
"Set a CI variable" "Add an Actions secret"
"Draft: in the title" "Mark it as a draft"

What never changes

Git itself. clone, add, commit, push, pull, fetch, branch, switch, merge, rebase, tag, log, diff, status, restore, reset, revert, stash and reflog behave identically no matter which platform hosts the remote. A remote is a URL; your repository does not know what is at the other end of it.