👋 We've unified all of GitHub's product documentation in one place! Check out the content for REST API, GraphQL API, and Developers. Learn more on the GitHub blog.
Article version: GitHub.com

Configuring commit squashing for pull requests

You can enforce, allow, or disable commit squashing for all pull request merges on GitHub in your repository.

Were you able to find what you were looking for?

You can configure pull request merge options on GitHub to meet your workflow needs and preferences for managing Git history. For more information, see "Configuring pull request merges."

For information about the default commit messages for squash merges, see "About pull request merges."

  1. On GitHub, navigate to the main page of the repository.
  2. Under your repository name, click Settings.
    Repository settings button
  3. Under "Merge button", optionally select Allow merge commits. This allows contributors to merge a pull request with a full history of commits.
    allow_standard_merge_commits
  4. Under "Merge button", select Allow squash merging. This allows contributors to merge a pull request by squashing all commits into a single commit. If you select another merge method besides Allow squash merging, collaborators will be able to choose the type of merge commit when merging a pull request. If there is a protected branch rule in your repository that requires a linear commit history, you must allow squash merging, rebase merging, or both. For more information, see "Requiring a linear commit history."
    Pull request squashed commits

Further reading

Were you able to find what you were looking for?

Ask a human

Can't find what you're looking for?

Contact us