Lesstep
Azure DevOps Services and Server · Completing pull requests · October 28, 2026

Azure DevOps merge types: squash, rebase, semi-linear and Limit merge types

When you complete a pull request, the Merge type decides what lands on the target branch. Azure Repos offers four, and a branch can allow only some of them with the branch policy Limit merge types; Azure DevOps then refuses a completion with any other type. Below is what each does and where the limits come from, from Microsoft's Complete a pull request and branch policies pages.

The four merge types

Rebase and fast-forward and semi-linear merge came in 2019 (Sprint 150); before them there were only a merge commit and a squash. Azure DevOps Server takes the two newer types from Server 2019 Update 1; TFS 2018 and Server 2019 without the update merge or squash only.

Limit merge types

The usual surprises

The merge commit message

Merge types in IntelliJ IDEA

Azure DevOps Pull Requests, a plugin by Lesstep for JetBrains IDEs 2024.1 or later and Android Studio, lists the pull requests of Azure DevOps Services and Azure DevOps Server in an IDE tool window. Its Complete dialog has the four merge types (merge or squash on TFS 2018 and Server 2019 before Update 1) and, from version 1.0.53, only those the target branch allows, with the allowed types named among the branch policies. You can also set auto-complete with your merge type. From version 1.0.68 the dialog also has the merge commit message, for completing now and for auto-complete; left empty, Azure DevOps writes its own, and it is off for Rebase and fast-forward. The review inbox and the branch policies are free; voting, commenting, completing and creating pull requests are Pro, with a 30-day trial.

Get it on JetBrains Marketplace

Azure DevOps is a trademark of Microsoft Corporation; IntelliJ IDEA is a trademark of JetBrains s.r.o. This page is not affiliated with or endorsed by Microsoft or JetBrains.

More: merge conflicts and the Merge Conflict extension · auto-complete and optional policies · required reviewers and path filters · explicit override to bypass policies · why an approval does not count · Azure DevOps pull request plugins for IntelliJ IDEA, compared · 日本語