Skip to main content

Configuring commit squashing for pull requests

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

You can configure pull request merge options on GitHub.com 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.com, navigate to the main page of the repository.
  2. Under your repository name, click Settings. Repository settings button
  3. Under "Pull Requests", 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 "Pull Requests", select Allow squash merging. This allows contributors to merge a pull request by squashing all commits into a single commit. The squash message automatically defaults to the title of the pull request if it contains more than one commit. If you want to use the title of the pull request as the default merge message for all squashed commits, regardless of the number of commits in the pull request, select Default to PR title for squash merge commits. Pull request squashed commits

If you select more than one merge method, collaborators can choose which type of merge commit to use when they merge 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."

Further reading