Skip to main content
Git is a version control system that records the changes made to a project’s files over time. It lets you see what changed and when, undo changes that cause problems, and work with other people on the same project without overwriting each other’s work. Every Maia project is backed by a Git repository, which stores your pipelines and their history. This page explains the main features of Git in Maia, how to set up a repository for your project, and how Git works in Designer. For a fuller explanation of what Git is and why it exists, read What is Git? from the official Git documentation. Expand this box to watch our video about how Maia integrates with Git.


Features

Git in Designer offers you:
  • Version control: Git keeps a history of every commit, allowing developers to view and track progress in a project.
  • Collaboration: Multiple developers can work on the same project simultaneously. Git tracks each person’s changes separately, so they can be pulled together and merged without overwriting each other’s work.
  • Branching and merging: Git makes it easy to create new branches for experimenting with new features, or for fixing bugs. You can then merge those branches back into the main codebase.
  • A distributed system: Git is a distributed version control system, which means that each developer has their own full copy of the repository, including its entire history—not just the current branch. This makes it easy to work in isolation and merge changes back into the main codebase later. To see how this works in Designer, read How Git works in Designer.

Set up Git for your project

You set up Git when you create a project, because every project needs a repository to store its pipelines and their history. You can use a repository that Maia hosts for you, or connect a repository from your own Git provider.

Maia Hosted Git

With Maia Hosted Git, Maia creates and hosts the repository for your project, so there’s nothing to install or configure. The repository starts with a default branch called main. Maia creates a Maia-hosted repository when you either:
  • Create a Maia managed project.
  • Select Advanced settings when you create a project, and then select Maia Hosted Git as your Git provider.
Some Git features depend on an external Git provider. For example, you can’t cherrypick changes in a Maia-hosted repository.

Your own Git repository

If your organization already uses a Git provider, you can connect one of its repositories to your project. Maia supports GitHub, Azure DevOps, GitLab, and Bitbucket. To connect your own repository, you first install the Maia app in your Git provider. Maia then connects to your repository using that app, and honors the user permissions that you set up in your Git provider. Because your provider hosts the repository, you can also use its own tools alongside Maia, such as cherrypicking changes with the UI or CLI tools of your provider.
Once you connect a project to a Git repository (GitHub, GitLab, Azure DevOps, or Bitbucket), you cannot disconnect or change the Git repository connection.You must create a new project from scratch if you need to:
  • Disconnect from your current Git repository.
  • Connect to a different Git repository.
  • Switch between different repo host platforms (e.g., from GitHub to GitLab).
Reusing an existing Matillion ETL Git repository isn’t supported and can cause issues with your pipelines.
Connecting a Git repository to a project doesn’t require an environment or data warehouse connection to already exist. If you open a branch before creating an environment, Designer prompts you to select one—for more information, read View and manage branches.
To get started, read Connect your own Git repo. To see where you choose a Git provider in the project creation process, read Select Git provider.

How Git works in Designer

In Designer, you don’t have a copy of your project’s files on your own machine. Instead, you work in an online copy of the remote repository that you can reach when you’re logged in to Maia. Your changes move between your online copy and the remote repository in a series of steps:
  1. You edit your pipelines on a branch. A branch is an independent line of work, so your changes don’t affect anyone else’s. We recommend that you develop on branches other than main (or the equivalent branch in your own Git repository). To learn more, read Branches.
  2. You commit your changes. A commit is a snapshot of your work, saved to your branch. Committed changes stay in your online copy and aren’t visible to others yet.
  3. You push your commits. Pushing sends them to the remote repository, so your team can see them.
  4. You pull changes from the remote repository. Pulling brings changes that other people have pushed into your online copy.
  5. When your work is ready, you merge your branch into another branch, such as main. Merging combines the changes from both branches.
To start creating orchestration and transformation pipelines, open your project and click the branch you want to check out. You’re then redirected to the Designer UI.
Maia context files allow you to define project specific standards, naming conventions, and guidance that Maia uses to generate consistent pipelines. To ensure these files are properly shared across branches, follow the recommended Git workflow. Read View Git workflow for managing context files.
To learn how each Git action works, read Using Git in Designer.

Next steps