Git in Designer
Git is a tool used for source control management in software development. It helps developers keep track of changes made to a project's source code, and collaborate without overwriting each other's work. Designer is built with Git from the ground up for version control, making it simple to collaborate and manage your data pipelines within your team.
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, and Git ensures that everyone has access to the most recent version of the pipeline.
- 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 copy of the remote repository in their working directory. This makes it easy to work in isolation and merge changes back into the main codebase later.
Note
It's important to note the difference between how Git works in Designer and standard Git. When you work in Designer, you don't have a copy of the files in your local machine. Instead, you'll have an online copy of the remote repository. This is essentially your working directory, which you can access when you're logged into the Data Productivity Cloud with this specific account. However, the online copy in Designer is not automatically synced to the remote repository; therefore, changes that are staged and committed are isolated from the remote repository until you push. In the same way, new changes that are pushed to the remote repository by others are isolated from your online copy in Designer, until you pull remote changes.
Repositories
When using the Data Productivity Cloud, you can either choose to use a Matillion-hosted Git repository, or to connect your own Git repository to the Data Productivity Cloud.
To use a Matillion-hosted Git repository, create a project and select one of the following options. When you create a project in one of these ways, an associated Matillion-hosted Git repository is created, containing a default branch called main
.
- Choose a Matillion managed project.
- Choose Advanced settings to configure your own project setting, then select Matillion-hosted Git.
To use an external Git provider, you need to connect your own Git repository to the Data Productivity Cloud. The external providers that are currently able to be connected to the Data Productivity Cloud are GitHub, Azure DevOps, GitLab, and Bitbucket. For more information, read Connect your own Git repo.
We recommend using branches other than main
(or the equivalent branch in your own Git repository) to develop your orchestration and transformation pipelines. For more information about creating and managing branches, read Branches.
To start creating orchestration and transformation pipelines, open your project and click the branch you want to check out. You will then be redirected to the Designer UI.
Git actions
You can find the available Git actions on the branch menu on the project bar.
- Commit changes to your pipelines, creating a new snapshot of the code. A commit is a "local" action and should be followed by a push action when you are ready to collaborate.
- Push local changes in your commits to the remote repository when you're ready to collaborate, allowing other team members to access (pull) the changes into their own copy of the remote.
- Pull remote changes from remote to your copy of the branch, updating your working directory version of the code.
- Merge from branch to integrate changes from a remote branch to your local branch. To see someone else's merged changes, you will need to pull from remote.
- Compare changes to compare the local changes you have made in a file to the version of that file from the last commit.
- Reset branch to reset your local branch to either of the following states:
- Reset to the latest local commit, discarding any uncommitted changes in your local branch.
- Reset to the latest remote commit, discarding any local commits and any uncommitted changes in your local branch, and then pulling the latest commits from the remote branch.