@@ -23,7 +23,7 @@ Add an [issue description template](../description_templates.md#description-temp
...
@@ -23,7 +23,7 @@ Add an [issue description template](../description_templates.md#description-temp
Set up your project's merge request settings:
Set up your project's merge request settings:
- Set up the merge request method (merge commit, [fast-forward merge](https://docs.gitlab.com/ee/user/project/merge_requests/fast_forward_merge.html#fast-forward-merge-requests)). _Fast-forward is available in [GitLab Enterprise Edition Starter](https://about.gitlab.com/gitlab-ee/)._
- Set up the merge request method (merge commit, [fast-forward merge](https://docs.gitlab.com/ee/user/project/merge_requests/fast_forward_merge.html#fast-forward-merge-requests)).
@@ -186,7 +186,7 @@ If you have an issue that spans across multiple repositories, the best thing is
...
@@ -186,7 +186,7 @@ If you have an issue that spans across multiple repositories, the best thing is
![Vim screen showing the rebase view](rebase.png)
![Vim screen showing the rebase view](rebase.png)
With git you can use an interactive rebase (`rebase -i`) to squash multiple commits into one and reorder them.
With git you can use an interactive rebase (`rebase -i`) to squash multiple commits into one and reorder them.
In GitLab Enterprise Edition Starter and GitLab.com, you can also [rebase before merge](../user/project/merge_requests/fast_forward_merge.md) from the web interface.
You can also [rebase before merge](../user/project/merge_requests/fast_forward_merge.md) from the web interface.
This functionality is useful if you made a couple of commits for small changes during development and want to replace them with a single commit or if you want to make the order more logical.
This functionality is useful if you made a couple of commits for small changes during development and want to replace them with a single commit or if you want to make the order more logical.
However you should never rebase commits you have pushed to a remote server.
However you should never rebase commits you have pushed to a remote server.
Somebody can have referred to the commits or cherry-picked them.
Somebody can have referred to the commits or cherry-picked them.
...
@@ -247,7 +247,7 @@ Before accepting a merge request, select `rebase before merge`.
...
@@ -247,7 +247,7 @@ Before accepting a merge request, select `rebase before merge`.
![Merge request widget](merge_request_widget.png)
![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.
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 traget branch will be altered with the the merge.
If clean rebase is possible and history of the target branch will be altered with the the merge.
In conclusion, we can say that you should try to prevent merge commits, but not eliminate them.
In conclusion, we can say that you should try to prevent merge commits, but not eliminate them.
Your codebase should be clean but your history should represent what actually happened.
Your codebase should be clean but your history should represent what actually happened.