Configuring commit squashing for pull requests

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

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 "About protected branches." Pull request squashed commits

Further reading

Did this doc help you?Privacy policy

Help us make these docs great!

All GitHub docs are open source. See something that's wrong or unclear? Submit a pull request.

Make a contribution

Or, learn how to contribute.