# Publish changes (/editor/publish)

<!-- agent-signals: reading_time_min: 6 · est_tokens: 2312 · updated: 2026-09-23 -->
Related: [How to use the editor](/editor/tutorial.md), [Create and edit pages](/editor/pages.md), [Review changes](/editor/review.md), [Collaborate in the editor](/editor/collaborate.md), [Ask agent](/editor/agent.md), [Editor settings for AI and publishing](/editor/settings.md)

Your changes save automatically as you edit, but they only reach your live site when you publish them. What happens when you publish depends on which branch you work on and whether that branch has branch protections.

<Note>
  If there is no **Publish** button in your editor toolbar, your deployment has [auto publish](#auto-publish) turned on and your edits go live automatically.

  If there is no branch selector, [show the branch selector](#show-the-branch-selector).

  If you only see your own changes in the **Publish** menu, turn on [granular publishing](#publish-specific-changes) to see everyone's changes.
</Note>

## Pending changes [#pending-changes]

On your deployment branch, the editor tracks the following as pending changes until you publish them:

* Content edits in pages
* New or deleted pages
* Navigation structure changes
* Media uploads
* Configuration updates

Click **Publish** in the toolbar to see your pending changes. Click any changed file to compare it against the published version.

## What happens when you publish [#what-happens-when-you-publish]

| Branch type                                                                                                                                              | Branch protection      | Available actions                                   |
| -------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------- | --------------------------------------------------- |
| <Tooltip tip="The branch that publishes to your live site, typically 'main'." headline="Deployment branch">Deployment branch</Tooltip>                   | None                   | **Publish** directly to your live site              |
| Deployment branch                                                                                                                                        | Pull requests required | **Create branch** to move your work to a new branch |
| <Tooltip tip="An isolated branch where you work on updates before merging to your deployment branch." headline="Feature branch">Feature branch</Tooltip> | None                   | **Request review**, then **Merge and publish**      |
| Feature branch                                                                                                                                           | Protected              | **Create branch** to keep editing on a new branch   |

* **Publish**: Commits your pending changes to your deployment branch and deploys them to your live site.
* **Request review**: Marks the branch's pull request ready for review.
* **Merge and publish**: Merges the pull request into your deployment branch and deploys it. Available once the pull request is ready or approved, depending on your repository's review requirements.
* **Create branch**: Creates a new feature branch when you can't publish to the current branch.

Only one publish can happen at a time per branch. If a teammate is publishing to the same branch, wait for their publish to complete, then try again.

<Note>
  Your live site updates after Mintlify builds and deploys your changes. This typically takes 30 seconds to a few minutes. Check the deployment status on your [dashboard](https://app.mintlify.com).
</Note>

### Invalid MDX blocks publishing [#invalid-mdx-blocks-publishing]

If any page on your branch has invalid MDX, the editor disables the **Publish** and **Request review** buttons until you fix it. Hover over **Publish** to see how many pages have errors, then open each page in source mode to see and fix the error. See [Publish button disabled because of invalid MDX](/help-center/publish-button-disabled-invalid-mdx) for details.

## Publish specific changes [#publish-specific-changes]

When several people have pending changes on your deployment branch, the [**Granular publishing**](/editor/settings#granular-publishing) setting controls which changes the **Publish** menu shows.

**Granular publishing off (default)**: The **Publish** menu shows only your changes. That includes files you edited, files that you and teammates both edited, and files with no recorded author. **Publish** and **Discard all** apply only to those changes. If teammates have other pending changes, a notice says that their changes are hidden.

**Granular publishing on**: The **Publish** menu splits pending changes into **Your changes** and **Modified by others**. Your changes start selected, and others' changes start unselected. Use the checkboxes to choose which changes to publish. Each section has its own **Discard** button.

A contributors icon marks files that someone other than you edited. Hover over it to see who edited the file.

* Granular publishing only applies on a deployment branch without branch protections. On feature branches, publishing includes every pending change.
* Deleting a folder deletes every page inside it. Those deletions publish together. You can't partially delete a folder.
* Some changes depend on each other, like a page and its navigation entry. If your selection leaves out a change that a selected change depends on, the publish fails with an error. Adjust your selection to include the dependency, then publish again.

## Work on a branch [#work-on-a-branch]

Edit directly on your deployment branch if you don't use a review workflow. Create a branch if each change goes through review before it reaches your live site.

To create a branch:

1. Click the branch name in the editor toolbar. On your deployment branch, the name has a **Live** badge.
2. Optionally, type a title for your branch in **Find a branch**.
3. Click **New branch**.

If you don't enter a title, the editor names the branch after the current date. If you have pending changes when you create a branch, the editor asks whether to **Bring them to this branch** or **Leave them behind**. Your original branch keeps its pending changes either way.

Edits on a branch you created in the editor commit to the branch automatically, about 15 seconds after you stop editing. The first commit opens a pull request against your deployment branch. The pull request opens as a draft if [Create draft pull requests by default](/editor/settings#create-draft-pull-requests-by-default) is on.

When your changes are ready, click **Publish**, then click **Request review**. After your pull request meets your repository's review requirements, click **Merge and publish**. The editor merges the pull request and switches you back to your deployment branch.

### Manage branches [#manage-branches]

The branch menu lists your deployment branch and branches with open pull requests, including pull requests opened outside the editor. Each branch shows its pull request status. To find a merged or closed branch, search for it by name.

To rename or delete a branch, hover over it in the branch menu and click **Rename branch** or **Delete branch**. Deleting a branch permanently removes it from your repository, along with any unpublished changes on it.

### Show the branch selector [#show-the-branch-selector]

If your deployment branch has no branch protections, the editor hides the branch selector while you work on the deployment branch. To show it, click <Icon icon="<svg xmlns=&#x22;http://www.w3.org/2000/svg&#x22; viewBox=&#x22;0 0 24 24&#x22; fill=&#x22;none&#x22;><path d=&#x22;M12 12.002H12.5M19 12.002H19.5M5 12.002H5.5M12 13.002C12.5523 13.002 13 12.5542 13 12.002C13 11.4497 12.5523 11.002 12 11.002C11.4477 11.002 11 11.4497 11 12.002C11 12.5542 11.4477 13.002 12 13.002ZM19 13.002C19.5523 13.002 20 12.5542 20 12.002C20 11.4497 19.5523 11.002 19 11.002C18.4477 11.002 18 11.4497 18 12.002C18 12.5542 18.4477 13.002 19 13.002ZM5 13.002C5.55228 13.002 6 12.5542 6 12.002C6 11.4497 5.55228 11.002 5 11.002C4.44772 11.002 4 11.4497 4 12.002C4 12.5542 4.44772 13.002 5 13.002Z&#x22; stroke=&#x22;currentColor&#x22; stroke-linecap=&#x22;round&#x22; stroke-linejoin=&#x22;round&#x22; stroke-width=&#x22;1.5&#x22;/></svg>" /> **More options** in the top bar, then turn on **Branches**. This preference applies only to you.

The branch selector always appears when your deployment branch has branch protections or when you work on a feature branch.

## Resolve conflicts [#resolve-conflicts]

When someone pushes to your repository from outside the editor, the editor merges their changes into the pages you have open. A notification tells you how many updates were applied.

If a remote change and your edit affect the same part of a page, the editor keeps both versions and highlights them. Review the highlighted content, keep the version you want, and delete the other.

## Commit signing [#commit-signing]

Sign commits with your GitHub account by authorizing it in your [account settings](https://app.mintlify.com/settings/account). Without authorization, the Mintlify GitHub App signs commits made in the editor.

## Auto publish [#auto-publish]

If your deployment has [auto publish](/editor/settings#auto-publish) turned on, the editor commits to your deployment branch shortly after you stop typing. The branch selector and **Publish** button are hidden. There is no pending state and no review step.
