Commit b6e06124 authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Add documentation for ff-merge and rebase

parent 57505bfe
......@@ -15,6 +15,7 @@
- [Project forking workflow](forking_workflow.md)
- [Project users](add-user/add-user.md)
- [Protected branches](protected_branches.md)
- [Fast-forward merge](ff_merge.md)
- [Rebase before merge](rebase_before_merge.md)
- [Sharing a project with a group](share_with_group.md)
- [Share projects with other groups](share_projects_with_other_groups.md)
......
# Fast-forward merge
GitLab Enterprise Edition offers a way to accept merge request without creating merge commit.
If you prefer linear git history - this might be a good feature for you.
You can configure this per project basis by navigating to the project settings page and selecting `Only fast-forward merging` checkbox.
![Merge request settings](ff_merge.png)
Now when you visit merge request page you will be able to accept it only if fast-forward merge is possible.
If target branch is ahead of source branch - you need to rebase source branch before you will be able to do fast-forward merge.
For simple rebase operations you can use [Rebase before merge](rebase_before_merge.md) feature.
#Rebase before merge
# Rebase before merge
GitLab Enterprise Edition offers a way to rebase before merging a merge request. You can configure this per project basis by navigating to the project settings page and selecting `Merge Requests Rebase` checkbox.
GitLab Enterprise Edition offers a way to rebase source branch of merge request.
This feature is part of [Fast-forward merge](ff_merge.md) feature.
It allows you to rebase source branch of merge request in order to perform fast-forward merge.
You can configure this per project basis by navigating to the project settings page and selecting `Rebase button` checkbox.
This checkbox is visible only if you have `Only fast-forward merging` checkbox enabled.
![Merge request settings](merge_request_settings.png)
Before accepting a merge request, select `rebase before merge`.
![Merge request widget](merge_request_widget.png)
GitLab will attempt to cleanly rebase before merging branches. If clean rebase is not possible, regular merge will be performed.
If clean rebase is possible and history of the target branch will be altered with the merge.
Now if fast-forward merge requires rebase - you will see rebase button:
![Rebase request widget](rebase_request_widget.png)
GitLab will attempt to rebase source branch. If rebase succeed you will see `Accept merge request` button.
If clean rebase is not possible - you need to do rebase manually.
Possibly rebase requires some conflicts to be resolved by human.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment