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.