PBIP, PBIR, TMDL et Git
En bref
- Enregistrer un rapport en projet Power BI (PBIP) ; créer un dépôt Git et lire une différence dans Visual Studio Code ; connecter un espace de travail Fabric à Git ; organiser le travail en branches et choisir une méthode de mise en production.
- Prérequis : page Les formats de fichiers : PBIX, PBIT, PBIP, PBIR, TMDL (partie 0) ; Git et Visual Studio Code installés.
- Licence requise : aucune pour Git sur le poste ; espace de travail sur une capacité Fabric (F), Premium ou Premium par utilisateur pour l'intégration Git.
Pourquoi ?
Un PBIX est un fichier binaire : impossible de savoir ce qui a changé entre deux versions, de revenir à l'état d'hier ou de fusionner le travail de deux personnes. Le format projet enregistre le rapport et le modèle en fichiers texte que Git sait comparer, historiser et fusionner.
| Méthode manuelle (vue TMDL) | Méthode Git | |
| Ce qui est versionné | Le modèle sémantique scripté | Le modèle et le rapport (pages, visuels, thèmes) |
| Déclenchement | Discipline : scripter avant de modifier | Chaque validation (commit) est une version |
| Historique | Fichiers .tmdl nommés à la main | Auteur, date, message, différences ligne à ligne |
| Travail à plusieurs | Impossible à fusionner | Branches, fusion, revue |
| Publication | Manuelle | Synchronisation de l'espace de travail, pipelines de déploiement |
La méthode manuelle est décrite dans la page
Vue TMDL (partie 3).
Notions clés
Les briques
- Projet Power BI (PBIP) : le rapport est enregistré au format PBIR (un fichier JSON par page, visuel et signet), le modèle au format TMDL (un fichier par table, rôle, culture).
- Dépôt Git local : sur le poste, il enregistre l'historique des validations.
- Dépôt distant : Azure DevOps (Azure Repos) ou GitHub, référence partagée de l'équipe.
- Intégration Git de l'espace de travail : un espace de travail Fabric est relié à une branche et à un dossier du dépôt et se synchronise dans les deux sens.
- Pipelines de déploiement : promotion du contenu de l'espace de développement vers le test puis la production.
[Capture : schéma d'ensemble, poste du développeur (Power BI Desktop et VS Code) relié à un dépôt Azure DevOps ou GitHub, lui-même relié à l'espace de travail Dev, puis flèches vers les espaces Test et Prod via le pipeline de déploiement]
Ce qui va dans Git, et ce qui n'y va pas
Ventes/
├── Ventes.Report/ # définition du rapport (PBIR)
├── Ventes.SemanticModel/ # définition du modèle (dossier definition en TMDL)
├── .gitignore
└── Ventes.pbipLe fichier .gitignore, créé automatiquement, exclut :
**/.pbi/localSettings.json
**/.pbi/cache.abfcache.abf contient les données importées (taille, confidentialité) ; sans lui, Desktop ouvre le modèle vide et il suffit d'actualiser. localSettings.json contient des réglages propres au poste. Dans un espace de travail connecté, seules les définitions sont synchronisées : ni les données, ni les identifiants, ni les paramètres d'actualisation.
Statut
Selon la documentation Microsoft Learn (mise à jour de décembre 2025), le format projet est encore en préversion : activez Enregistrer en tant que projet Power BI (.pbip) dans Fichier > Options et paramètres > Options > Fonctionnalités en préversion, ainsi que le stockage du rapport en PBIR et du modèle en TMDL si ces options y figurent encore.
Pas à pas
Préparer le projet et créer le dépôt
- Dans Power BI Desktop, Fichier > Enregistrer sous > type Projet Power BI (*.pbip), dans un dossier dédié au chemin court.


- Dans VS Code, Fichier > Ouvrir le dossier, puis volet Contrôle de code source > Initialiser le dépôt. Saisissez un message (
Version initiale du rapport Ventes) et Validez.

- Publiez la branche : VS Code propose de créer le dépôt sur GitHub ; pour Azure DevOps, créez d'abord le dépôt dans Repos > Files, puis Clone > Clone in VS Code.
Équivalent en ligne de commande :
cd C:\Projets\Ventes
git init
git add .
git commit -m "Version initiale du rapport Ventes"
git remote add origin https://dev.azure.com/<organisation>/<projet>/_git/<depot>
git push -u origin main- Modifiez une mesure dans Desktop et enregistrez : VS Code signale
definition/tables/Ventes.tmdl. Un clic affiche la comparaison ligne à ligne ; l'extension Git Graph visualise l'historique.

Connecter un espace de travail à Git
Prérequis : capacité Fabric, Premium ou Premium par utilisateur ; paramètres du locataire Les utilisateurs peuvent synchroniser les éléments de l'espace de travail avec leurs dépôts Git (et avec les dépôts GitHub) activés ; rôle Administrateur de l'espace de travail ; compte Azure DevOps lié au même utilisateur Microsoft Entra, ou jeton d'accès personnel GitHub (lecture et écriture sur Contents).

Créer la branche main dans un dépôt GitHub vide
- Ouvrez le dépôt sur GitHub : la page Quick setup s'affiche.
- Cliquez sur creating a new file (ou Add file > Create new file).
- Nommez le fichier
README.md, saisissez une ligne de texte, puis Commit changes : cette première validation crée la branchemain. Source - Dans Fabric, fermez puis rouvrez Paramètres de l'espace de travail > Intégration Git :
mainapparaît dans la liste Branche. - Pour créer d'autres branches : sur GitHub, menu des branches au-dessus de la liste des fichiers > saisir le nom > Create branch ... from main (GitHub Docs : Source) ; ou dans Fabric, liste Branche > + Nouvelle branche, possible dès que
mainexiste (Microsoft Learn : Source). - Si
mainn'apparaît toujours pas, vérifiez que le jeton d'accès personnel a l'autorisation Contents : Read and write sur ce dépôt.
- Paramètres de l'espace de travail > Intégration Git : choisissez le fournisseur, renseignez l'organisation, le projet, le dépôt, la branche et le dossier, puis Connecter et synchroniser. À la première synchronisation, le contenu est copié du côté non vide vers le côté vide.
- Au quotidien, le volet Contrôle de code source de l'espace de travail affiche les éléments Non validé, Mise à jour requise ou en Conflit :
| Action | Sens | Démarche |
| Valider | Espace de travail vers Git | Modifications > cocher > message > Valider |
| Mettre à jour | Git vers espace de travail | Mises à jour > Tout mettre à jour |
| Annuler | Retour à l'état synchronisé | Modifications > cocher > Annuler |
[Capture : espace de travail connecté à Git, colonne Statut Git des éléments et volet Contrôle de code source ouvert sur l'onglet Modifications]
Exemple
Démarche type en équipe, chaque développeur sur sa branche :
- Créer
feature/mesures-margedepuismain. - Faire des validations petites et fréquentes, avec un message « verbe + objet » (
Ajoute la mesure Marge %). - Mettre régulièrement sa branche à jour depuis
main. - Ouvrir une demande de tirage (pull request) vers
main; le référent relit les différences et approuve. - Dans l'espace de travail d'équipe connecté à
main, Mettre à jour.
Pour s'isoler sans Desktop, Brancher vers un autre espace de travail crée une branche et un espace de travail dédiés.
[Capture : demande de tirage dans Azure DevOps ou GitHub, branche feature vers main, onglet Fichiers montrant la différence sur un fichier .tmdl, bouton Approuver]
Pour mettre en production :
| Option | Principe | Pour qui |
| Pipelines de déploiement | Seul l'espace Dev est connecté à Git ; promotion Dev, Test, Prod avec règles de déploiement | Équipes Power BI, recommandée en formation |
| Intégration Git par étape | Une branche par environnement | Équipes qui suivent Gitflow |
| API et outils | Déploiement par script (bibliothèque Python fabric-cicd, API REST Fabric) | Chaînes CI/CD automatisées |
Pièges et bonnes pratiques
- Un espace de travail n'est connecté qu'à une seule branche à la fois.
- Fermez Power BI Desktop avant de modifier les fichiers avec un autre outil : il ne détecte pas les modifications externes.
- N'enregistrez pas un projet dans un dossier OneDrive ou SharePoint synchronisé ; utilisez un dossier local versionné.
- Les fichiers sont en UTF-8 sans BOM et Desktop écrit des fins de ligne CRLF : configurez
core.autocrlfpour éviter des différences parasites. - Évitez les images lourdes dans le rapport.
- Conflit : choisissez la version de l'espace de travail ou celle de Git dans l'interface, ou résolvez dans Git puis mettez à jour l'espace.
- Retour arrière : Annuler pour ce qui n'est pas validé ;
git revert <commit>pour une validation, puis Mettre à jour l'espace et actualiser le modèle. - Une demande de tirage peut déclencher un pipeline Azure DevOps qui contrôle le modèle (Best Practice Analyzer de Tabular Editor) et le rapport (PBI Inspector).
À retenir
- PBIP = rapport en PBIR + modèle en TMDL, en fichiers texte comparables.
- Les données (
cache.abf) ne vont jamais dans Git. - L'intégration Git relie un espace de travail Fabric à une branche, dans les deux sens.
- Une branche par évolution, une demande de tirage pour fusionner, un pipeline pour déployer.
Pour aller plus loin
- Projets Power BI Desktop (PBIP). Source
- Intégration Git des projets Power BI. Source
- Prise en main de l'intégration Git. Source
- Gérer les branches. Source
- Bonnes pratiques CI/CD dans Fabric. Source
- Tutoriel de bout en bout : Git et pipelines de déploiement. Source
Exercice
- Enregistrez le fichier du fil rouge en PBIP, ouvrez le dossier dans VS Code, initialisez le dépôt et validez la version initiale.
- Ajoutez une mesure dans Desktop, enregistrez, observez la différence dans VS Code, validez.
- Créez une branche
feature/page-synthese, modifiez une page, validez, revenez surmainet rouvrez le PBIP pour constater que la page n'a pas changé. - Fusionnez la branche dans
main. - Avec une capacité Fabric (l'essai suffit) : connectez un espace de travail à
main, modifiez un visuel dans le service, Validez, puis récupérez la modification avecgit pull. - Annulez la dernière validation avec
git revertet Mettez à jour l'espace de travail.











