Version Control for Power BI Using Git

In this guide, I will walk through how you can use GitHub and Git to version control Power BI reports using the PBIP format. I wanted a way to track changes to Power BI models and reports over time, understand exactly what changed, and avoid overwriting work or passing PBIX files back and forth. In this video, I’ll show a practical workflow using Power BI Desktop, GitHub, and Git Bash that makes version control possible without relying on Fabric or Premium features.

Prerequisites

  1. Create a free GitHub account.
  2. Install Git for Windows.

Step 1: Create a repository

  1. Log in to your GitHub account and create a new repository.
  2. Name the repository powerbi-test and initialize it with a README file. The README is just an empty file in markdown format. It’s not required to create a repository, but it will save us a step later on so it’s easier to just press this button while you’re already on this screen.
  3. Open Windows PowerShell and clone the repository locally.
git clone https://github.com/yourusername/powerbi-test.git

Step 2: Add your Power BI report to the repository

  1. Save your Power BI report in PBIP format in the folder you just created.
  2. In PowerShell, commit the initial version of your report, and push it to the main branch of your remote repository.
cd powerbi-test
git add .
git commit -m "Initial report"
git push origin main

Now your Power BI report has been added to the GitHub repository!

Step 3: Make the first change

  1. Open the report you saved earlier.
  2. Make a change to your report, such as renaming one of your DAX measures. Then save it.
  3. See the changes you made in the Diff viewer.
git diff

After seeing the changes, you can exit the Diff viewer using the ‘q’ command.

Step 4: Commit and push

Commit and push the change to your remote repository.

git add .
git commit -m "Renamed measure"
git push origin main

Step 5: Create a new branch

  1. On GitHub, create a new branch, and call it new-measure.
  2. In PowerShell, fetch and switch to the new branch. Now your next change will not effect the main branch.
git fetch
git switch new-measure

Step 6: Make the second change in the new branch

Create a new measure in your report and save it.

Step 7: Commit and push again

Commit and push the change to the new-measure branch on your remote repository.

git add .
git commit -m "Renamed measure"
git push origin new-measure

Step 8: Create a pull request

  1. Refresh your GitHub repository and you will see the push to the new repository.
  2. Open the compare screen for the push.
  3. Create a pull request.

Step 9: Review and merge

  1. Open the pull request and see the differences between the main and new-measure branch.
  2. Merge pull request.

Conclusion

By saving your reports in PBIP format and connecting them to Git, you turn Power BI development into a transparent, trackable process. Instead of passing PBIX files back and forth or wondering what changed between versions, you gain a clear history of every edit, the ability to work safely in branches, and a structured way to review and merge changes. This approach does not require Fabric, Premium features, or complex tooling. Power BI Desktop, Git, and GitHub. With a simple workflow like this, version control becomes a practical part of everyday Power BI development, helping you work more confidently and collaboratively over time.