---
title: Deploying your Merge Queue
description: Deploy Mergify's merge queue with a hybrid approach or enforce exclusive automated merges.
---

Once you've configured your merge queue, you can deploy it using one of two approaches:

**Approach 1: Hybrid Mode.** Mergify and manual merges coexist. This is the
simplest way to start and requires no additional setup.

**Approach 2: Exclusive Mode.** Only Mergify can merge pull requests (enforced
via GitHub rulesets). This provides the most consistent workflow.

Both approaches are optional: choose what works best for your team.

## Approach 1: Hybrid Mode

In hybrid mode, developers can use the merge queue or merge manually. Both work
simultaneously. This is the default behavior and requires no setup.

### When to Use Hybrid Mode

- **Getting started**: Your team is new to merge queues
- **Gradual transition**: You want minimal disruption to existing workflows
- **Flexibility**: Some PRs need manual merging for specific reasons

### Tradeoffs

- **Queue disruption**: Manual merges can interrupt the automated queue flow
- **Extra CI time**: Manual merges may reset queued jobs, increasing CI usage (disable with `reset_on_external_merge: never`)

### Best Practices

**Educate your team** on when to use the queue vs. manual merges.

**Monitor usage** to track adoption. Add this rule to get notified of manual merges:

```yaml
pull_request_rules:
  - name: notify on manual merge
    conditions:
      - merged
      - merged-by != mergify[bot]
    actions:
      comment:
        message: Hey @{{author}}, this PR was merged manually. Consider using the merge queue next time!
```

**Gather feedback** from your team and address any issues they encounter.

## Approach 2: Exclusive Mode

In exclusive mode, only Mergify can merge pull requests. This is enforced using
GitHub rulesets and provides the most consistent, automated workflow.

### When to Use Exclusive Mode

- **Your team is comfortable** with the merge queue
- **You want consistency**: All PRs follow the same automated process
- **Optimal performance**: Eliminates queue disruptions from manual merges

### How to Enable Exclusive Mode

1. Navigate to **Merge Queue > Deploy** in your Mergify dashboard.

   <Image src={bpDashboardScreenshot} alt="Deploy screen from Mergify dashboard"/>

2. Follow the on-screen instructions to configure your GitHub ruleset.

3. Click the verification button to confirm your setup is correct.

**Be careful**: Mergify injects ruleset rules as conditions in the merge queue.
If you want Mergify to bypass the injection of the ruleset rules, see
[GitHub Rulesets Compatibility](/merge-queue/github-rulesets) for details on
bypass modes and known incompatibilities.

### Enforcing Exclusive Mode with Classic Branch Protection

Rulesets are the recommended way to enforce exclusive mode. If your repository
still uses classic branch protection instead, you can achieve the same result
by restricting who may push to your protected branch to Mergify only.

1. In your repository, open **Settings > Branches** and click **Add branch
   protection rule**.

   <Image src={bpSettingsScreenshot} alt="GitHub branch protection settings"/>

2. Enter your branch name, enable **Restrict who can push to matching
   branches**, and add the **Mergify** app to the allowed list.

   <Image src={bpRuleScreenshot} alt="Restrict push access to Mergify"/>

With this rule in place, developers can no longer merge pull requests directly,
so all merges flow through Mergify's queue.
