Version Control & Collaboration
Built-in Git workflows designed for data teams. Branch, review, and merge dbt changes with confidence, right from the IDE.
Git-Native Development
Every dbt project in dbdeux is backed by a Git repository. This means:
- Full version history of every change to every model
- Branch-based workflows so experiments never affect production
- Code review with pull requests before changes go live
- Rollback to any previous state instantly
Branching
Create and Switch Branches
Create feature branches directly from the IDE. Each branch provides an isolated workspace:
- Changes on your branch are invisible to other team members until you merge
- Multiple team members can work on different branches simultaneously
- Branches can target different environments for testing
- New branches are cut from the live head of the source branch on your provider, not a stale cached commit, so you always start from the newest code
If you are sitting on the default branch (main or master), dbdeux nudges you with a one-click prompt to create a feature branch first, so you do not accidentally commit straight to the protected branch.
Branch Naming Conventions
dbdeux suggests branch names based on your work:
feature/add-customer-ltv-modelfix/order-total-calculationrefactor/staging-layer-cleanup
Refresh Branches
The branch picker has a refresh button that re-syncs the branch list directly from your Git provider. Use it when someone else created or deleted a branch and you want it to show up without reloading the app.
Delete a Branch
You can delete a branch you no longer need straight from the branch picker. Because deleting removes the branch on your Git provider too, it goes through a safeguarded confirmation:
- Any uncommitted changes on the branch are counted and shown before you confirm, so you never lose work by accident
- You type the branch name to confirm the deletion
- The branch is removed on the provider and cleaned up locally
Switching Branches
When you switch branches, open editor tabs are remapped to the file records on the branch you moved to, so you keep working on the same files in their new-branch state instead of seeing stale content. If the branch you were on no longer exists (for example someone deleted it), dbdeux falls back to a valid branch instead of leaving you stranded on a missing one.
Because unsaved editor edits live only in your browser, dbdeux guards the switch when you have unsaved changes. It lists exactly which files have unsaved edits and lets you either move your current changes onto the branch you are switching to (drafts are flushed and carried over) or cancel and save first. A branch switch never silently discards work.
Git Provider Support
dbdeux integrates with all major Git providers:
| Provider | Features | Self-hosted |
|---|---|---|
| GitHub | Full support including PR creation, commit status, webhooks | GitHub Enterprise Server supported |
| GitLab | Full support including MR creation, commit status, webhooks | Self-managed instances supported |
| Azure DevOps | Full support including PR creation, service hooks, commit status | Azure DevOps Server supported |
| Bitbucket Cloud | Full support including PR creation, commit status, webhooks | Bitbucket Data Center supported |
Connect your provider in Settings with a personal access token or app password. Self-hosted instances are supported by providing your custom base URL during setup. See the Token Setup Guide for required scopes and step-by-step instructions for each provider.
Update, Disconnect, and Reconnect
Need to rotate your token or switch to a different account? You have two options in Settings:
- Update the token in place: Paste a new token to replace the stored one without disconnecting. This is the quickest way to rotate a credential that is about to expire.
- Disconnect: Clear your stored credentials entirely, then reconnect with a new token when you are ready.
Either way:
- Your repository links remain intact (no need to re-create projects)
- Useful when rotating tokens, switching from a personal to a service account, or troubleshooting auth issues
If a token is rejected or lacks repository access, dbdeux surfaces an actionable error that tells you what to fix rather than a generic failure.
Pull Requests
Open Pull Requests from the IDE
When your changes are ready for review:
- Commit your changes with a descriptive message
- Push your branch to the remote
- Click Create Pull Request to open a PR in your Git provider
dbdeux takes you straight to your provider's own "new pull request" page with the branch and base already filled in, so the PR is created and reviewed in the tool your team already uses. This deep-link approach works across GitHub, GitLab, Azure DevOps, and Bitbucket.
Preview Your PR Before You Open It
Open the branch compare sheet from the Changes panel to see exactly what your pull request will contain before you create it:
- Every commit your branch is ahead by, and how far behind the base it is
- The full list of files the PR will change
- An auto-generated PR title and description drafted from your commits, carried straight into your provider's create-PR page so you are not staring at an empty form
This removes the usual surprise of opening a PR and discovering it includes more (or less) than you expected.
Review with Context
Pull requests created from dbdeux include rich context:
- Schema Diff: Automatically shows the schema impact of the code changes
- Model list: Which models were modified, added, or removed
- DAG impact: Visual representation of affected downstream models
- Run results: Optional CI results showing that models build successfully
Reviewing and Discarding Changes
The Changes panel lists every file you have modified on the current branch:
- Click a changed file to open it in the editor so you can review the change before staging or committing it
- Stage and unstage files individually or in bulk, including brand-new files you just created, so nothing is silently left out of a commit
- Discard a file to roll it back to the last committed state when you want to abandon an edit, and this works for deleted files too, so you can bring back a file you removed by mistake
Branch State at a Glance
A status strip at the top of the Changes panel keeps you oriented without dropping to a terminal:
- Ahead and behind counts show how your branch compares to its base branch in real time
- Merge base pulls the latest base branch into yours in one click when you have fallen behind
- A manual refresh re-checks the state on demand, and the panel also polls in the background
- The Changes button turns amber when your branch needs attention, such as when it is behind or has conflicts to resolve
- dbdeux tracks the last commit it synced for your branch and notifies you automatically when your local branch falls behind the remote, so you know to pull before someone else's work drifts out of sight
Auto-Drafted Commit Messages
When you stage changes, dbdeux drafts a commit message from what you actually changed, following the standard summary-line convention. Accept it as-is or edit it. No more blank commit boxes or vague "update models" messages.
Changed-Line Markers
As you edit, the editor gutter marks every added, changed, and removed line against the committed version of the file. Hover a marker for details, and use the status bar legend to read the colors at a glance, so you always know exactly what you have touched.
Pulling and Conflicts
When you pull the latest changes from the remote, dbdeux tells you exactly what happened:
- A clean pull confirms your branch is up to date
- If the pull produces conflicts, a warning tells you how many files conflicted and marks them in the file tree, and dbdeux opens the first conflicted file for you so you can start resolving immediately
- Open each conflicted file and choose Keep my changes, Keep incoming, or merge manually to resolve it
- Pulling again is blocked until every conflict is resolved, so you never stack conflicts on top of conflicts
Team Collaboration
See Who is Working Where
The IDE shows real-time presence indicators:
- See which team members are currently online
- See which files are being edited by others
- Avoid conflicts by knowing when someone else is working on the same model
Merge Conflict Resolution
When branches diverge, the IDE resolves conflicts in a full side-by-side merge editor built on the same engine that powers the code editor:
- Incoming changes on the left (read-only) next to an editable merge result on the right, seeded from your version
- One-click chunk accept to pull in an incoming change without hand-editing
- Edit the merge result directly for anything that needs a human decision
- See the resolved file exactly as it will be committed before you finish the merge
File History and Blame
Understand not just what changed, but who changed it and why, without leaving the editor:
- File history: Open the history sheet for any file to see its commits over time, with authors and timestamps
- Inline line blame: Turn on an annotate column, in the style of a desktop IDE, that shows the date and author of the commit that last touched each line. Adjacent lines from the same commit are shaded together and the line under your cursor expands to full commit details, so you can trace a piece of logic straight back to the change that introduced it
These views are backed by your Git provider, so they reflect the same history your team sees everywhere else.
How It Compares
| Capability | dbdeux | dbt Cloud IDE | Local Git + CLI |
|---|---|---|---|
| Branch state (ahead/behind, merge base) | Live strip in the Changes panel | Limited | Manual git status / git fetch |
| Auto-drafted commit and PR text | Drafted from your changes | Manual | Manual |
| PR preview before opening | Branch compare sheet with file list | Not available | Manual git diff |
| Conflict resolution | Side-by-side merge editor, one-click chunk accept | Basic | Text markers in your editor |
| File history and line blame | Built into the editor | Limited | git log / git blame in a terminal |
| Changed-line markers | Live gutter vs committed version | Limited | Depends on local editor setup |
| Provider deep links | GitHub, GitLab, Azure DevOps, Bitbucket | GitHub-centric | Manual |
Audit Trail
Every action is tracked and attributable:
- Who changed what, when, and why (via commit messages)
- Which runs were triggered from which commits
- Full history accessible through the Git log in the IDE
- Integration with external compliance and audit tools via webhooks