Version Control with Git
dex offers native integration with GitHub and GitLab, allowing you to manage your entire project—including models, configuration files, tests, and macros—using the version control workflows your engineering team already knows. This integration brings a higher standard of collaboration, visibility, and governance to your data pipelines, all from within the dex interface.
With Git integration, teams can safely manage changes, collaborate across environments, and roll back to previous versions when needed. Users can commit, push, and pull code directly from the dex UI, making version control seamless and accessible for every data engineer and analyst on the team.
All changes made in dex are reflected in your connected Git repository. That includes edits to SQL models, YAML files, seeds, macros, and documentation. The commit history and file diffs can be reviewed directly inside dex, and changes pushed from the platform are immediately available to all collaborators.
Key Concepts
Repository
A repository (or repo) is the storage location for all the code, configuration files, and history related to your dex project. It lives in a Git-based platform like GitHub or GitLab and contains everything you need to build, test, and deploy your data workflows. Repositories track all changes over time, making it easy to collaborate, audit, and roll back when needed. In dex, your project is always connected to your own repository, ensuring full ownership of your code.
Branch
A branch is an independent line of development within a Git repository. It allows you to work on new features or changes without affecting the main version of the project. Common branches include dev
for development work and main
(or prod
) for production-ready code. In dex, switching environments typically means switching branches, allowing you to isolate changes, test safely, and promote updates when they’re ready.
Commit
A commit is the act of saving your changes locally in your Git history. When you commit in dex, you’re capturing a snapshot of your current work—including models, configurations, and other code files—with a message describing what changed. Commits are stored locally in your branch until they are pushed to the remote repository.
Push
A push sends your committed changes from dex to your connected Git repository (such as GitHub or GitLab). This makes your changes available to others, updates the remote version of the branch, and ensures that automations, Flows, or production environments using that branch are running the latest code.
Pull
A pull fetches the latest changes from your Git repository into dex. This keeps your local environment in sync with any updates made by collaborators or other branches. When you pull, dex retrieves new commits from the remote repo and applies them to your selected branch in the platform.
Your Code, Your Repository
One of the most important aspects of dex’s Git integration is that all code committed and pushed from the platform belongs to you. It is stored in your GitHub or GitLab repository, not ours. This ensures your data models and transformations remain fully portable and under your control, reducing vendor lock-in and enabling long-term maintainability and flexibility.
Whether you want to plug dex into your CI/CD pipeline or simply back up your code to an external repo, this integration keeps your infrastructure as code approach intact. You can review, test, or promote your models using whatever process works best for your organization.
Last updated
Was this helpful?