In this guide, I am going to walk you through the three ways to merge conflicts in Azure DevOps: the “Extension” method (the easiest), the “Visual Studio” method (the most visual), and the “Command Line” method (the most reliable).
How to Resolve Merge Conflicts in Azure DevOps
Why Do Merge Conflicts Happen?
Before we fix the problem, let’s understand the root cause. A merge conflict occurs in Azure DevOps when two different branches have competing changes to the same line of a file, or when one branch edits a file that another branch has deleted.
Git is smart, but it is not a mind reader. When it sees two valid but contradictory changes, it effectively throws its hands up.
Common Scenarios
- Concurrent Editing: Developer A changes line 10 of
Login.csto “Blue”. Developer B changes line 10 to “Red”. - File Renaming: Developer A renames
style.csstomain.css. Developer B editsstyle.css. - The “Cleanup” Conflict: One developer deletes a deprecated function while another developer fixes a bug inside that same function.
Method 1: The Web Interface (The “Pull Request Merge Conflict” Extension)
For years, Azure DevOps users begged for a way to fix simple text conflicts without cloning the repo locally. Microsoft finally answered. They released an official extension that enables this.
Step 1: Install the Extension
Out of the box, Azure DevOps cannot do this. You need to install the “Pull Request Merge Conflict” extension from the Visual Studio Marketplace.
- Go to your Organization Settings.
- Select Extensions.
- Search for “Pull Request Merge Conflict” (created by Microsoft DevLabs).
- Click Get it free and install it for your organization. Check out the screenshot below for your reference.

Once installed, go to the blocked Pull Request (PR). You will notice a new tab has appeared.
- Overview | Files | Updates | Commits | Conflicts (New!)
Step 3: Resolve the Conflict
- Click the Conflicts tab.
- You will see a list of conflicting files. Click on a file name.
- The screen will split into three panes:
- Source: Your branch (Incoming changes).
- Target: The main branch (Current state).
- Result: The final file.
- Navigate line-by-line. You can click a button to “Take Source” or “Take Target.”
- Once all red lines are green, click Submit Merge.
Note: This method is perfect for simple logic or text fixes. If the conflict is complex or involves massive refactoring, do not use this. Move to Method 3.
Method 2: The Visual Studio Approach (The GUI Way)
For developers working in the .NET ecosystem (C#, F#, ASP.NET), Visual Studio provides one of the best conflict resolution tools on the market.
Step 1: Fetch the Conflict
You cannot resolve the conflict in Visual Studio if your local machine doesn’t know about it.
- Open Team Explorer (or the Git Changes window in VS 2022).
- Click Sync to fetch the latest commits from the remote repo.
- Attempt to Merge or Rebase the target branch (e.g.,
main) into your feature branch. - Visual Studio will throw a warning: “Merge completed with conflicts.”
Step 2: Open the Merge Editor
In the “Git Changes” window, you will see a list of “Unmerged Changes.”
- Double-click the file with the conflict.
- The Merge Editor window opens. This is a powerful 3-way view.
- On the Top Left is your code. On the Top Right is the incoming code. The Bottom pane is the result.
Step 3: Check the Boxes
Visual Studio makes this easy with checkboxes.
- Check the box on the Left to keep your change.
- Check the box on the Right to overwrite your change with the incoming one.
- Or, type manually in the bottom window to combine them.
Step 4: Accept Merge
Once the file has n