Merge branch 'docs/overview-features-5' into 'master'
Update MR-related docs See merge request !12875
This commit is contained in:
commit
7e12619998
1 changed files with 64 additions and 0 deletions
|
@ -3,6 +3,59 @@
|
|||
Merge requests allow you to exchange changes you made to source code and
|
||||
collaborate with other people on the same project.
|
||||
|
||||
## Overview
|
||||
|
||||
A Merge Request (**MR**) is the basis of GitLab as a code collaboration
|
||||
and version control platform.
|
||||
Is it simple as the name implies: a _request_ to _merge_ one branch into another.
|
||||
|
||||
With GitLab merge requests, you can:
|
||||
|
||||
- Compare the changes between two [branches](https://git-scm.com/book/en/v2/Git-Branching-Branches-in-a-Nutshell#_git_branching)
|
||||
- [Review and discuss](../../discussions/index.md#discussions) the proposed modifications inline
|
||||
- Live preview the changes when [Review Apps](../../../ci/review_apps/index.md) is configured for your project
|
||||
- Build, test, and deploy your code in a per-branch basis with built-in [GitLab CI/CD](../../../ci/README.md)
|
||||
- Prevent the merge request from being merged before it's ready with [WIP MRs](#work-in-progress-merge-requests)
|
||||
- View the deployment process through [Pipeline Graphs](../../../ci/pipelines.md#pipeline-graphs)
|
||||
- [Automatically close the issue(s)](../../project/issues/closing_issues.md#via-merge-request) that originated the implementation proposed in the merge request
|
||||
- Assign it to any registered user, and change the assignee how many times you need
|
||||
- Assign a [milestone](../../project/milestones/index.md) and track the development of a broader implementation
|
||||
- Organize your issues and merge requests consistently throughout the project with [labels](../../project/labels.md)
|
||||
- Add a time estimation and the time spent with that merge request with [Time Tracking](../../../workflow/time_tracking.html#time-tracking)
|
||||
- [Resolve merge conflicts from the UI](#resolve-conflicts)
|
||||
|
||||
With **[GitLab Enterprise Edition][ee]**, you can also:
|
||||
|
||||
- View the deployment process across projects with [Multi-Project Pipeline Graphs](https://docs.gitlab.com/ee/ci/multi_project_pipeline_graphs.html#multi-project-pipeline-graphs) (available only in GitLab Enterprise Edition Premium)
|
||||
- Request [approvals](https://docs.gitlab.com/ee/user/project/merge_requests/merge_request_approvals.html) from your managers (available in GitLab Enterprise Edition Starter)
|
||||
- Enable [fast-forward merge requests](https://docs.gitlab.com/ee/user/project/merge_requests/fast_forward_merge.html) (available in GitLab Enterprise Edition Starter)
|
||||
- [Squash and merge](https://docs.gitlab.com/ee/user/project/merge_requests/squash_and_merge.html) for a cleaner commit history (available in GitLab Enterprise Edition Starter)
|
||||
- Enable [semi-linear history merge requests](https://docs.gitlab.com/ee/user/project/merge_requests/index.html#semi-linear-history-merge-requests) as another security layer to guarantee the pipeline is passing in the target branch (available in GitLab Enterprise Edition Starter)
|
||||
- Analise the impact of your changes with [Code Quality reports](https://docs.gitlab.com/ee/user/project/merge_requests/code_quality_diff.html) (available in GitLab Enterprise Edition Starter)
|
||||
|
||||
## Use cases
|
||||
|
||||
A. Consider you are a software developer working in a team:
|
||||
|
||||
1. You checkout a new branch, and submit your changes through a merge request
|
||||
1. You gather feedback from your team
|
||||
1. You work on the implementation optimizing code with [Code Quality reports](https://docs.gitlab.com/ee/user/project/merge_requests/code_quality_diff.html) (available in GitLab Enterprise Edition Starter)
|
||||
1. You build and test your changes with GitLab CI/CD
|
||||
1. You request the approval from your manager (available in GitLab Enterprise Edition Starter)
|
||||
1. Your manager pushes a commit with his final review, [approves the merge request](https://docs.gitlab.com/ee/user/project/merge_requests/merge_request_approvals.html), and set it to [merge when pipeline succeeds](#merge-when-pipeline-succeeds) (Merge Request Approvals are available in GitLab Enterprise Edition Starter)
|
||||
1. Your changes get deployed to production with [manual actions](../../../ci/yaml/README.md#manual-actions) for GitLab CI/CD
|
||||
1. Your implementations were successfully shipped to your customer
|
||||
|
||||
B. Consider you're a web developer writing a webpage for your company's:
|
||||
|
||||
1. You checkout a new branch, and submit a new page through a merge request
|
||||
1. You gather feedback from your reviewers
|
||||
1. Your changes are previewed with [Review Apps](../../../ci/review_apps/index.md)
|
||||
1. You request your web designers for their implementation
|
||||
1. You request the [approval](https://docs.gitlab.com/ee/user/project/merge_requests/merge_request_approvals.html) from your manager (available in GitLab Enterprise Edition Starter)
|
||||
1. Once approved, your merge request is [squashed and merged](https://docs.gitlab.com/ee/user/project/merge_requests/squash_and_merge.html), and [deployed to staging with GitLab Pages](https://about.gitlab.com/2016/08/26/ci-deployment-and-environments/) (Squash and Merge is available in GitLab Enterprise Edition Starter)
|
||||
1. Your production team [cherry picks](#cherry-pick-changes) the merge commit into production
|
||||
|
||||
## Authorization for merge requests
|
||||
|
||||
There are two main ways to have a merge request flow with GitLab:
|
||||
|
@ -79,6 +132,16 @@ specific commit page.
|
|||
You can append `?w=1` while on the diffs page of a merge request to ignore any
|
||||
whitespace changes.
|
||||
|
||||
## Live preview with Review Apps
|
||||
|
||||
If you configured [Review Apps](https://about.gitlab.com/features/review-apps/) for your project,
|
||||
you can preview the changes submitted to a feature-branch through a merge request
|
||||
in a per-branch basis. No need to checkout the branch, install and preview locally;
|
||||
all your changes will be available to preview by anyone with the Review Apps link.
|
||||
|
||||
[Read more about Review Apps.](../../../ci/review_apps/index.md)
|
||||
|
||||
|
||||
## Tips
|
||||
|
||||
Here are some tips that will help you be more efficient with merge requests in
|
||||
|
@ -167,3 +230,4 @@ git checkout origin/merge-requests/1
|
|||
```
|
||||
|
||||
[protected branches]: ../protected_branches.md
|
||||
[ee]: https://about.gitlab.com/gitlab-ee/ "GitLab Enterprise Edition"
|
||||
|
|
Loading…
Reference in a new issue