Project113

Merge Strategies

Project113 supports three merge strategies for combining changes from a source branch into a target branch.

Merge (Default)

Creates a merge commit that combines all commits from the source branch into the target. This preserves the full commit history of both branches.

main:     A --- B --- C --- M
                   \       /
feature:          D --- E

Best for: preserving complete history and understanding how changes were developed.

Squash

Squashes all commits from the source branch into a single commit on the target branch. The individual commits from the source branch are not preserved.

main:     A --- B --- C --- S
feature:          D --- E

Best for: keeping a clean, linear history when the source branch has many small or messy commits.

Rebase

Replays each commit from the source branch on top of the target branch, creating a linear history without merge commits.

main:     A --- B --- C --- D' --- E'

Best for: maintaining a clean, linear commit history. Note that this rewrites commit hashes.

Choosing a Strategy

The default strategy is configured in repository settings. You can override it per change request. CR policies can also enforce specific strategies for certain branches.