2.3.1. Version Control with Git Integration
💡 First Principle: Git integration treats Fabric items as code—versioned, reviewed, and deployed through controlled processes. Like a time machine for your data platform, every change is recorded and reversible. The team member who "accidentally deleted something" is no longer a crisis—it's a one-click restore.
Scenario: A data engineer makes changes to a lakehouse schema and pipeline. Without version control, reverting a bad change requires manual reconstruction. With Git integration, every change is tracked and reversible.
Git Integration Workflow
- Connect Workspace to Git Repository (Azure DevOps or GitHub)
- Sync Items to Repository (export item definitions)
- Branch for Development (feature branches for changes)
- Commit Changes (track modifications)
- Pull Request & Review (team review before merge)
- Deploy via Pipeline (automated deployment to higher environments)
Supported Items for Git Integration
- Lakehouses (schema definition)
- Data Pipelines
- Notebooks
- Semantic Models
- Reports
Sync Direction and Conflict Resolution
| Operation | Direction | When to Use |
|---|---|---|
| Commit | Workspace → Git | Save workspace changes to repository |
| Update | Git → Workspace | Pull latest changes from repository |
| Sync All | Bidirectional | Initial sync or full reconciliation |
Conflict Scenarios:
- Same item modified in both: Fabric prompts to choose workspace or Git version
- Item deleted in Git but modified in workspace: Requires manual resolution
- New items in both locations: Both are kept (no conflict)
What Breaks Without Git Integration?
- No audit trail of who changed what and when
- No ability to roll back bad deployments
- Manual reconstruction required after accidental deletions
- No code review process before production changes
- Environment promotion becomes error-prone manual copying
⚠️ Exam Trap: Git integration versions item definitions (metadata, schemas, code), not the data itself. If someone asks about versioning the actual data rows, Git is not the answer.
⚠️ Common Pitfall: Forgetting to commit before switching branches. Uncommitted workspace changes can be lost or cause conflicts when updating from Git.