Prepstellar

DP-700 · Workspace Lifecycle Management

28 cards

Git Integration Workflow

Swipe, scroll or use ← →
  1. What Git integration connects

    Git integration exists so that several developers can change the same Fabric content safely: every change has a history, a review, and a way back. The integration works at the workspace level. Developers version the items of a workspace in a single process, and the workspace structure, including subfolders, is preserved in the repository.

    The supported Git providers are Azure DevOps, GitHub, and GitHub Enterprise, and each one is supported in its cloud-based version only. An on-premises server is not an option, and neither is a GitHub Enterprise Server on a private network.

    Two things must be in place before anyone connects:

    • A Fabric capacity, which is needed to use Git integration.
    • The tenant switch Users can synchronize workspace items with their Git repositories. GitHub users need a second switch that allows synchronization with GitHub repositories.
    1 / 28
  2. What Git integration connects

    The connection itself is narrow. A workspace connects to one branch and one folder at a time. The repository can hold many branches and many folders, but the workspace follows only the pair chosen in workspace settings. If the folder name is left blank, the content is created in the root folder.

    Not every item type supports Git. A workspace with unsupported items can still be connected, and the rule for those items is simple: unsupported items are ignored. They are not saved or synced, and they are not deleted either. They appear in the Source control panel, but you can't commit or update them.

    Some supported item types are still in preview for Git integration, so check the list of supported items before you plan a workspace around it.

    2 / 28
  3. Quick check

    A workspace contains one item type that Git integration does not support. What happens when an Admin connects that workspace to a repository?

    1. AThe connection is refused until the unsupported item is removed

      An unsupported item does not block the connection. The workspace can still be connected.

    2. BThe workspace connects, and the unsupported item is left out of every sync

      Right. The item is not saved or synced, and it stays in the workspace untouched.

    3. CThe workspace connects, and the unsupported item is deleted from it

      Ignored does not mean removed. The item is not deleted, it is just left out of commits and updates.

    3 / 28

  4. Who can do what

    What you can do depends on two sets of permissions at once: your workspace role in Fabric and your permissions in the Git repository. The Fabric side is the one that exam scenarios test most.

    Operation Workspace role needed
    Connect, sync, or disconnect the workspace Admin
    Commit changes, update from Git Contributor with write permission on all items
    Switch branch, check out a new branch Admin by default
    Branch out to another workspace Admin, Member, or Contributor
    Any Git action Not available to a Viewer

    In words: only a workspace Admin can connect a workspace to a repository, sync it, or disconnect it. The Contributor role, with write permission on all items, is enough to commit and to update. A Viewer can't perform any Git action and can't see any Git information in the workspace.

    Two extra conditions can apply to commit and update. If a tenant switch blocks updates by nonowners, you must also be the owner of the item, and where an item has external dependencies you need Build permission on them.

    4 / 28
  5. Who can do what

    Changing the branch of a connected workspace is the operation with an exception. By default, Switch branch and Checkout new branch require the Admin role. A workspace Admin can turn on the workspace setting Allow users with at least Contributor role to change Git branch. When it is on, Members and Contributors who have write access to all items can switch branches and check out new branches.

    Three details about that setting:

    • It is configured per workspace. There is no tenant-level switch for it.
    • It requires an active Git connection on the workspace.
    • It does not change who can connect or disconnect: those actions stay Admin-only.

    On the Git side, the pattern is read versus write. In Azure Repos, updating from Git needs only Read. Committing needs Read and Contribute, and the branch policy must allow direct commits.

    5 / 28
  6. Quick check

    A Member of a Git-connected workspace can commit and update, but the Switch branch action is not available to her. Nobody has changed the workspace settings. Why?

    1. ASwitching the branch needs the Admin role unless a workspace setting delegates it

      Right. Switch branch is Admin-only by default. The workspace setting that lets Contributors and above change the Git branch is off until an Admin enables it.

    2. BMembers can update from Git, but only Admins can commit or switch

      Committing is not Admin-only. A Contributor with write permission on all items can commit and update.

    3. CThe tenant admin has to enable branch switching for each Member

      There is no tenant-level switch for this. The delegation is a per-workspace setting that the workspace Admin controls.

    6 / 28

  7. Connect and sync

    A workspace Admin connects from Workspace settings, under Git integration: choose the provider, the repository, the branch, and the folder, and then select Connect and sync. The first sync makes the two locations hold the same content, and what it does depends on what is already there.

    Before the first sync What Fabric does
    One side is empty Copies the content from the nonempty side to the empty one
    Both sides have content Asks you to choose the direction of the sync

    If both the workspace and the Git branch have content, you have to decide which direction the sync goes. Fabric does not merge the two sets. Committing the workspace exports all supported workspace content to Git and overwrites the current Git content. Updating the workspace overwrites the workspace content with the Git content.

    The second direction is the risky one. A Git branch can always be restored to a previous state, while a workspace can't, so Fabric asks you to confirm before an update overwrites the workspace.

    One more point for shared workspaces: the Git connection is per user. Each person who works in a connected workspace configures their own connection to the provider.

    7 / 28
  8. Quick check

    An Admin connects an empty workspace to a Git branch that already holds item folders. What does the first sync do?

    1. AIt asks the Admin which side should overwrite the other

      Fabric asks for a direction only when both sides already have content. Here one side is empty.

    2. BIt leaves the workspace empty until the first manual update

      The first sync is part of Connect and sync. Fabric does not wait for a separate update.

    3. CIt copies the content of the branch into the workspace right away

      Right. When one side is empty, the content is copied from the nonempty side to the empty one.

    8 / 28

  9. Keep your progress in the app

    That’s 3 of 10 quick checks. In the app they stay answered, and every lesson remembers where you left off.

    Opens in your browser. Nothing to install.

    Start studying

    On your phone, with the same account

    Get it on Google Play Download on the App Store
    Keep reading here
  10. Read the Git status

    After the connection, the workspace shows a Git status column. It compares each item in the workspace with the same item in the connected branch, and it tells you which button you need next.

    Status Meaning
    Synced The item is the same in the workspace and in the Git branch
    Uncommitted changes The item changed in the workspace and is not in Git yet
    Update required The item changed in the Git branch and the workspace is behind
    Conflict The item changed in both the workspace and the Git branch
    Unsupported item Git integration does not track this item type

    The Source control icon at the top of the workspace shows the number of items that differ between the workspace and the branch. When everything is synced, it displays a 0. Its panel has two lists: Changes, for items changed in the workspace that need a commit, and Updates, for items changed in the branch that need to be pulled into the workspace.

    9 / 28
  11. Quick check

    A teammate merges a pull request that modifies a pipeline in the connected branch. Nobody has touched that pipeline in the workspace. Which Git status does the pipeline show?

    1. AUpdate required

      Right. The item changed in the Git branch only, so the workspace is behind and needs an update.

    2. BUncommitted changes

      Uncommitted changes means the item changed in the workspace and is not in Git yet. Here the change is in Git.

    3. CConflict

      A conflict needs changes on both sides of the same item. The workspace copy was not touched.

    10 / 28

  12. Commit, update, and undo

    Anything you save in a connected workspace is saved in the workspace only. It reaches Git when you commit it, and three commands manage that gap.

    Commit sends workspace changes to the branch, and it is selective: when more than one item changed, you choose which items to commit. There is one block to know. If there are new commits in the Git branch, Commit is disabled until you update the workspace.

    Update pulls the branch into the workspace, and it is not selective. Update always updates the entire branch and syncs to the most recent commit. You can't select specific items to update. If the same item changed in the workspace and in the branch, Update is disabled until the conflict is resolved.

    You can sync in only one direction at a time: you can't commit and update together.

    11 / 28
  13. Commit, update, and undo

    Undo throws away saved workspace changes that you decide not to commit. The selected items revert to how they were when the workspace was last synced. Take care with new items: undoing an added item permanently deletes it.

    Command Direction Can you pick items?
    Commit Workspace to Git Yes
    Update Git to workspace No, the entire branch
    Undo Back to the last synced state Yes

    A variant helps when Commit is blocked. Commit to new branch creates a new branch from the last synced state and commits your changes there in one action. It works even when incoming updates disable the normal commit. The new branch is not connected to the workspace, and the workspace state does not change.

    12 / 28
  14. Quick check

    A developer changed three items in a connected workspace and wants only two of them in Git today. The branch has no new commits. What can she do?

    1. ACommit all three, because a commit always covers the whole workspace

      Commit is the selective command. The command that always covers everything is Update.

    2. BSelect the two items in the Changes list and commit only those

      Right. When more than one item changed, you choose which items to commit.

    3. CUndo the third item first, because Commit needs a clean Changes list

      Commit does not need the list to be clean, and Undo would throw the third change away.

    13 / 28

  15. Resolve a conflict

    A conflict occurs when the same item changes in both the workspace and the Git branch. The item shows the status Conflict, and Commit is disabled. When you select Update, a Resolve Conflicts button appears, and it lists every conflicted item with two choices.

    Choice What it does Git status afterward
    Accept incoming changes The Git version overrides the workspace item, and the workspace changes are lost Synced
    Keep current content The workspace version stays Uncommitted changes

    Keep current content keeps the workspace version, and after the update the item's status becomes Uncommitted changes, because the workspace version is not committed to the branch yet. Accept incoming changes ends in Synced.

    A second way is to revert one side. Undo returns conflicted items in the workspace to their last synced state, which loses the workspace changes. In Azure DevOps, the git revert command takes the branch back instead.

    14 / 28
  16. Resolve a conflict

    Two more paths exist, and they are opposites in how much they keep.

    Disconnecting and reconnecting the workspace lets you choose a sync direction again. It is a blunt tool: reconnecting overwrites all items in the workspace or in the branch, not just the conflicted ones.

    Resolving in Git keeps both sets of changes. Use it when you are not sure which version to keep and don't want to revert:

    1. From the Source control panel, check out a new branch that starts at the last synced commit.
    2. Commit your workspace changes into that new branch.
    3. In Git, resolve the conflicts and merge the new branch into the original branch.
    4. In Fabric, switch the workspace back to the original branch.

    Checking out a new branch keeps the current workspace state, so uncommitted changes are retained. That is why this path loses nothing.

    15 / 28
  17. Quick check

    A dataflow shows Conflict, and the developer is certain that the version in Git is the right one. Which choice in Resolve Conflicts matches that decision?

    1. AKeep current content, which leaves the item with uncommitted changes

      Keep current content keeps the workspace version, which is the one she wants to discard.

    2. BCommit to new branch, which sends the workspace version to Git

      Commit to new branch is not a Resolve Conflicts choice, and it would save the workspace version, not replace it.

    3. CAccept incoming changes, which overrides the workspace item

      Right. Accepting the incoming changes replaces the workspace item with the Git version, and the status becomes Synced.

    16 / 28

  18. Branch out, check out, and switch

    The Branches tab of the Source control panel offers three actions. They sound alike, and they differ in which workspace they touch and whether its content changes.

    Action What it does Who can
    Branch out to another workspace Creates a new branch from the last commit of the source workspace, in a different workspace Contributor and above
    Checkout new branch Creates a new branch and connects the current workspace to it, without changing content Admin by default
    Switch branch Syncs the current workspace with another branch and overrides all its items Admin by default

    Branch out to another workspace creates a new branched workspace, or reuses an existing one, and connects it to a new Git branch based on the last commit of the source workspace. The source workspace keeps its branch. Creating a new workspace this way also needs the tenant switch Create workspaces.

    Checkout new branch creates a branch from the last synced commit and changes the Git connection of the current workspace. It doesn't change the workspace content.

    Switch branch overrides all items in the workspace with the content of the selected branch.

    17 / 28
  19. Branch out, check out, and switch

    Each action has a catch that decides real cases.

    • You can't switch branches if the workspace has uncommitted changes. Commit them first, and then switch.
    • When you switch, an item that exists in the old branch but not in the new one is deleted from the workspace. The new branch must also contain the same directory as the current one.
    • Branch out asks whether to create a new workspace or to use an existing one. By default, all items of the source branch arrive in the target workspace. The preview option Select items individually brings only the items you choose, and all their dependencies are required.
    • When you branch out to an existing workspace, items there that aren't saved to Git might be deleted. Commit what you want to keep before you start. You must be an Admin of that target workspace, or a Member or Contributor there with the change-branch setting on.
    • Branch out needs an available capacity, and only items that Git supports are available in the new workspace.
    18 / 28
  20. Quick check

    An Admin needs the current workspace to start tracking a brand-new branch, and every item must stay exactly as it is now. Which action fits?

    1. ASwitch branch

      Switch branch overrides all items in the workspace with the content of the branch it moves to.

    2. BCheckout new branch

      Right. It creates the branch from the last synced commit and changes the connection without changing the workspace content.

    3. CBranch out to another workspace

      Branching out connects the new branch to a different workspace. The current workspace keeps its old branch.

    19 / 28

  21. What travels with each item

    Git stores item definitions, not data. That one sentence explains most surprises after a sync, and two item types show it best.

    For a lakehouse, only metadata is tracked: the display name, the description, a logical GUID that identifies the lakehouse across workspaces, SQL analytics endpoint metadata, and OneLake shortcuts metadata.

    Lakehouse part In Git?
    Display name, description, logical GUID Tracked
    Shortcut definitions Tracked, in shortcuts.metadata.json
    OneLake security role definitions (preview) Tracked, in data-access-roles.json
    Tables, Delta or not Not tracked
    Folders in the Files section Not tracked

    Tables and the folders in the Files section are not tracked or versioned in Git. Their data is always preserved during Git operations: a sync never overwrites it, and a sync never copies it to another workspace either. Shortcut definitions do travel, and a Git update overrides the state of the shortcuts in the workspace: they are created, updated, or deleted to match the incoming state.

    20 / 28
  22. What travels with each item

    For a notebook, Git stores source files. A committed notebook is stored as a source file such as notebook-content.py, not as a standard .ipynb file, because that format is easier to review in a Git diff. The file keeps the notebook metadata, including the default lakehouse and the attached environment, together with the markdown cells and the code cells.

    Two consequences follow:

    • Notebook cell output isn't included when syncing to Git. Results stay in the workspace where the notebook ran.
    • The default lakehouse ID stays in the notebook metadata when you sync to another workspace, so you may need to bind the notebook to the new lakehouse by hand. Lakehouse Auto-Binding, enabled in the notebook settings, lets Fabric resolve the correct default lakehouse for each Git-connected workspace.

    The general rule also covers recovery: Git integration re-creates item definitions only and does not restore item data.

    21 / 28
  23. Quick check

    A lakehouse with two Delta tables and one shortcut is committed to Git. What does the repository hold for it?

    1. AThe lakehouse metadata and the shortcut definition, without table data

      Right. Only metadata is tracked, and shortcut definitions are part of that metadata. Tables are not tracked.

    2. BThe lakehouse metadata and the two Delta tables, without the shortcut

      It is the other way around: the shortcut definition is tracked and the tables are not.

    3. CThe Delta tables as files, as long as each one is under the file size limit

      Size is not the reason. Tables are simply not tracked or versioned in Git, whatever their size.

    22 / 28

  24. Limits to plan around

    Most Git integration failures in a large project come from a limit that nobody checked. These are the numbers worth knowing.

    Limit Value
    Items in a workspace 1,000
    Size of one file 25 MB
    Commit size, Azure DevOps with a user account 125 MB
    Commit size, Azure DevOps with a service principal 25 MB
    Commit size, GitHub 50 MB
    Branch name length 244 characters
    Full path of a file name 250 characters
    Folder depth that is kept 10 levels
    23 / 28
  25. Limits to plan around

    A workspace can contain a maximum of 1,000 items, and if the Git branch contains more than 1,000 items, syncing the content to the workspace fails. The fix is to split the items across workspaces linked to different branches, or across folders of one branch. The maximum file size is 25 MB. A single commit is limited to 125 MB with Azure DevOps and a user account, 25 MB with Azure DevOps and a service principal, and 50 MB with GitHub, so a large change on GitHub may need several commits. A branch name can have up to 244 characters, the full path of a file name can have up to 250 characters, and folder structure is kept up to 10 levels deep.

    24 / 28
  26. Limits to plan around

    Some setups are not supported at all:

    • Sovereign clouds, B2B users, and Git submodules.
    • MyWorkspace, which can't connect to a Git provider.
    • Workspaces with template apps installed.

    Three more rules affect daily work:

    • Cross-geo: if the workspace and an Azure DevOps repository are in different regions, the tenant admin must enable cross-geo export. This restriction does not apply to GitHub.
    • Sensitivity labels are not supported, and exporting items that carry a label might be disabled.
    • Duplicate names are not allowed: an update, commit, or undo fails if two items share a name.
    25 / 28
  27. Quick check

    A team that uses GitHub tries to commit 80 MB of changed item files in one commit, and the commit fails. No single file is larger than 25 MB. What is the likely cause?

    1. AGitHub commits from Fabric are limited to 50 MB in total

      Right. With GitHub the combined size of one commit is limited to 50 MB, so the change has to be split into several commits.

    2. BGitHub repositories need the cross-geo export setting first

      The cross-geo setting concerns Azure DevOps repositories in another region. It does not apply to GitHub.

    3. CA workspace commit is limited to 25 MB with any provider

      25 MB is the limit for one file, and for a commit made through Azure DevOps with a service principal. It is not the GitHub commit limit.

    26 / 28

  28. Key takeaways

    • Connection: Git integration supports Azure DevOps, GitHub, and GitHub Enterprise in their cloud versions, and only a workspace Admin can connect a workspace.
    • First sync: if both the workspace and the branch have content, you choose which side overwrites the other.
    • Commit and update: Commit is disabled while the branch has new commits. Update always brings the entire branch.
    • Conflicts: Keep current content ends in Uncommitted changes. To keep both versions, check out a new branch, commit there, merge in Git, and switch back.
    • Branch switching: it is Admin-only unless the workspace setting that delegates it to Contributors is on.
    • Per item: a lakehouse sends only metadata to Git, never table data, and a notebook is stored as a source file, not as an .ipynb file.
    • Limits: a workspace holds at most 1,000 items, so a branch with more items fails to sync until the items are split.
    27 / 28
  29. Quick check

    Which statement about a Git-connected workspace is correct?

    1. AUpdate lets you pull one changed item and leave the rest of the branch for later

      Update is never selective. It always syncs the workspace to the most recent commit of the entire branch.

    2. BCommit sends the items you select, and Update always brings the whole branch

      Right. Commit is the selective command, and Update covers everything that changed in the branch.

    3. CA Contributor can connect the workspace once the tenant switch is enabled

      Connecting, syncing, and disconnecting stay with the workspace Admin, whatever the tenant switches say.

    28 / 28

  30. 10 quick checks · then the test

    In the app, finishing the quick checks opens this lesson’s 10-question test, and the ones you miss come back exactly when you’re about to forget them.

    Take this lesson’s test → Next lesson: CI/CD Release Strategy

    Opens in your browser. Nothing to install.

    Start studying

    On your phone, with the same account

    Get it on Google Play Download on the App Store

The whole course, on your computer and your phone

Lessons you can read, audio you can listen to on the way to work, and practice that remembers what you got wrong.

Opens in your browser. Nothing to install.

Start studying

On your phone, with the same account

Get it on Google Play Download on the App Store

“This app is the ‘One Lake’ for preparing the certification exams. Really worth it.”

Abdelhak Y. Google Play review