Fast-forward merge requests (FREE)
Sometimes, a workflow policy might mandate a clean commit history without merge commits. In such cases, the fast-forward merge is the perfect candidate.
With fast-forward merge requests, you can retain a linear Git history and a way to accept merge requests without creating merge commits.
Overview
When the fast-forward merge
(--ff-only
) setting
is enabled, no merge commits are created and all merges are fast-forwarded,
which means that merging is only allowed if the branch can be fast-forwarded.
When a fast-forward merge is not possible, the user is given the option to rebase.
Enabling fast-forward merges
- On the top bar, select Menu > Projects and find your project.
- On the left sidebar, select Settings > General.
- Expand Merge requests.
- In the Merge method section, select Fast-forward merge.
- Select Save changes.
Now, when you visit the merge request page, you can accept it only if a fast-forward merge is possible.
If a fast-forward merge is not possible but a conflict free rebase is possible, a rebase button is offered.
The rebase action is also available as a quick action command: /rebase
.
If the target branch is ahead of the source branch and a conflict free rebase is not possible, you need to rebase the source branch locally before you can do a fast-forward merge.