debian-mirror-gitlab/doc/user/project/merge_requests/creating_merge_requests.md

173 lines
6.7 KiB
Markdown
Raw Normal View History

2019-12-26 22:10:19 +05:30
---
2020-10-24 23:57:45 +05:30
stage: Create
2021-04-17 20:07:23 +05:30
group: Code Review
2021-02-22 17:27:13 +05:30
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
2021-06-08 01:23:25 +05:30
description: "How to create merge requests in GitLab."
2020-03-13 15:44:24 +05:30
disqus_identifier: 'https://docs.gitlab.com/ee/gitlab-basics/add-merge-request.html'
2019-12-26 22:10:19 +05:30
---
2021-09-30 23:02:18 +05:30
# Creating merge requests **(FREE)**
2019-12-26 22:10:19 +05:30
2021-09-30 23:02:18 +05:30
There are many different ways to create a merge request.
2019-12-26 22:10:19 +05:30
2021-09-30 23:02:18 +05:30
## From the merge request list
2019-12-26 22:10:19 +05:30
2021-09-30 23:02:18 +05:30
You can create a merge request from the list of merge requests.
2019-12-26 22:10:19 +05:30
2021-09-30 23:02:18 +05:30
1. On the top bar, select **Menu > Projects** and find your project.
1. On the left menu, select **Merge requests**.
1. In the top right, select **New merge request**.
1. Select a source and target branch and then **Compare branches and continue**.
1. Fill out the fields and select **Create merge request**.
2019-12-26 22:10:19 +05:30
2022-01-26 12:08:38 +05:30
NOTE:
Merge requests are designed around a one-to-one (1:1) branch relationship. Only one open merge request may
be associated with a given target branch at a time.
2021-09-30 23:02:18 +05:30
## From an issue
2020-03-13 15:44:24 +05:30
2021-09-30 23:02:18 +05:30
You can [create a merge request from an issue](../repository/web_editor.md#create-a-new-branch-from-an-issue).
2020-03-13 15:44:24 +05:30
2021-09-30 23:02:18 +05:30
## When you add, edit, or upload a file
2021-04-17 20:07:23 +05:30
2021-09-30 23:02:18 +05:30
You can create a merge request when you add, edit, or upload a file to a repository.
2021-04-17 20:07:23 +05:30
2021-09-30 23:02:18 +05:30
1. Add, edit, or upload a file to the repository.
1. In the **Commit message**, enter a reason for the commit.
1. Select the **Target branch** or create a new branch by typing the name (without spaces, capital letters, or special chars).
1. Select the **Start a new merge request with these changes** checkbox or toggle. This checkbox or toggle is visible only
if the target is not the same as the source branch, or if the source branch is protected.
1. Select **Commit changes**.
2020-03-13 15:44:24 +05:30
2021-09-30 23:02:18 +05:30
## When you create a branch
2020-03-13 15:44:24 +05:30
2021-09-30 23:02:18 +05:30
You can create a merge request when you create a branch.
2020-03-13 15:44:24 +05:30
2021-09-30 23:02:18 +05:30
1. On the top bar, select **Menu > Projects** and find your project.
1. On the left menu, select **Repository > Branches**.
1. Type a branch name and select **New branch**.
1. Above the file list, on the right side, select **Create merge request**.
A merge request is created. The default branch is the target.
1. Fill out the fields and select **Create merge request**.
2020-03-13 15:44:24 +05:30
2021-09-30 23:02:18 +05:30
## When you use Git commands locally
2020-03-13 15:44:24 +05:30
2021-09-30 23:02:18 +05:30
You can create a merge request by running Git commands on your local machine.
2020-03-13 15:44:24 +05:30
2021-09-30 23:02:18 +05:30
1. Create a branch:
2020-03-13 15:44:24 +05:30
2021-09-30 23:02:18 +05:30
```shell
git checkout -b my-new-branch
```
2020-03-13 15:44:24 +05:30
2021-09-30 23:02:18 +05:30
1. Create, edit, or delete files. The stage and commit them:
2019-12-26 22:10:19 +05:30
2021-09-30 23:02:18 +05:30
```shell
git add .
git commit -m "My commit message"
```
2019-12-26 22:10:19 +05:30
2021-09-30 23:02:18 +05:30
1. [Push your branch to GitLab](../../../gitlab-basics/start-using-git.md#send-changes-to-gitlabcom):
2019-12-26 22:10:19 +05:30
2021-09-30 23:02:18 +05:30
```shell
git push origin my-new-branch
```
2020-01-01 13:55:28 +05:30
2021-09-30 23:02:18 +05:30
GitLab prompts you with a direct link for creating a merge request:
2019-12-26 22:10:19 +05:30
2021-09-30 23:02:18 +05:30
```plaintext
...
2022-03-02 08:16:31 +05:30
remote: To create a merge request for my-new-branch, visit:
2021-09-30 23:02:18 +05:30
remote: https://gitlab.example.com/my-group/my-project/merge_requests/new?merge_request%5Bsource_branch%5D=my-new-branch
```
2019-12-26 22:10:19 +05:30
2021-09-30 23:02:18 +05:30
1. Copy the link and paste it in your browser.
2019-12-26 22:10:19 +05:30
2021-09-30 23:02:18 +05:30
You can add other [flags to commands when pushing through the command line](../push_options.md)
to reduce the need for editing merge requests manually through the UI.
2019-12-26 22:10:19 +05:30
2021-09-30 23:02:18 +05:30
## When you work in a fork
2019-12-26 22:10:19 +05:30
2021-09-30 23:02:18 +05:30
You can create a merge request from your fork to contribute back to the main project.
2019-12-26 22:10:19 +05:30
2021-09-30 23:02:18 +05:30
1. On the top bar, select **Menu > Project**.
1. Select your fork of the repository.
1. On the left menu, go to **Merge requests**, and select **New merge request**.
1. In the **Source branch** drop-down list box, select the branch in your forked repository as the source branch.
1. In the **Target branch** drop-down list box, select the branch from the upstream repository as the target branch.
You can set a [default target project](#set-the-default-target-project) to
change the default target branch (which can be useful if you are working in a
forked project).
1. Select **Compare branches and continue**.
1. Select **Submit merge request**.
2019-12-26 22:10:19 +05:30
2021-09-30 23:02:18 +05:30
After your work is merged, if you don't intend to
make any other contributions to the upstream project, you can unlink your
fork from its upstream project. Go to **Settings > Advanced Settings** and
[remove the forking relationship](../settings/index.md#removing-a-fork-relationship).
2019-12-26 22:10:19 +05:30
2021-09-30 23:02:18 +05:30
For more information, [see the forking workflow documentation](../repository/forking_workflow.md).
2019-12-26 22:10:19 +05:30
2021-10-27 15:23:28 +05:30
## By sending an email
2019-12-26 22:10:19 +05:30
2021-09-30 23:02:18 +05:30
You can create a merge request by sending an email message to GitLab.
The merge request target branch is the project's default branch.
2019-12-26 22:10:19 +05:30
2021-09-30 23:02:18 +05:30
Prerequisites:
2019-12-26 22:10:19 +05:30
2021-09-30 23:02:18 +05:30
- A GitLab administrator must configure [incoming email](../../../administration/incoming_email.md).
- A GitLab administrator must configure [Reply by email](../../../administration/reply_by_email.md).
2019-12-26 22:10:19 +05:30
2021-09-30 23:02:18 +05:30
To create a merge request by sending an email:
2019-12-26 22:10:19 +05:30
2021-09-30 23:02:18 +05:30
1. On the top bar, select **Menu > Projects** and find your project.
1. On the left menu, select **Merge requests**.
1. In the top right, select **Email a new merge request to this project**.
An email address is displayed. Copy this address.
Ensure you keep this address private.
1. Open an email and compose a message with the following information:
2019-12-26 22:10:19 +05:30
2021-09-30 23:02:18 +05:30
- The **To** line is the email address you copied.
- The subject line is the source branch name.
- The message body is the merge request description.
2019-12-26 22:10:19 +05:30
2021-09-30 23:02:18 +05:30
1. Send the email message.
2019-12-26 22:10:19 +05:30
2021-09-30 23:02:18 +05:30
A merge request is created.
2020-03-13 15:44:24 +05:30
2021-09-30 23:02:18 +05:30
### Add attachments when creating a merge request by email
2020-04-22 19:07:51 +05:30
2021-09-30 23:02:18 +05:30
You can add commits to a merge request by adding
patches as attachments to the email. All attachments with a filename
ending in `.patch` are considered patches and are processed
ordered by name.
2020-04-22 19:07:51 +05:30
2021-09-30 23:02:18 +05:30
The combined size of the patches can be 2 MB.
2020-04-22 19:07:51 +05:30
2021-09-30 23:02:18 +05:30
If the source branch from the subject does not exist, it is
created from the repository's HEAD or the specified target branch.
You can specify the target branch by using the
[`/target_branch` quick action](../quick_actions.md). If the source
branch already exists, the patches are applied on top of it.
2020-04-22 19:07:51 +05:30
2021-04-29 21:17:54 +05:30
## Set the default target project
2022-01-26 12:08:38 +05:30
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/58093) in GitLab 13.11.
2021-09-30 23:02:18 +05:30
Merge requests have a source and a target project that are the same, unless
2021-04-29 21:17:54 +05:30
forking is involved. Creating a fork of the project can cause either of these
scenarios when you create a new merge request:
- You target an upstream project (the project you forked, and the default
option).
- You target your own fork.
2021-09-30 23:02:18 +05:30
To have merge requests from a fork by default target your own fork
(instead of the upstream project), you can change the default.
2021-04-29 21:17:54 +05:30
2021-09-30 23:02:18 +05:30
1. On the top bar, select **Menu > Project**.
1. On the left menu, select **Settings > General > Merge requests**.
2021-04-29 21:17:54 +05:30
1. In the **Target project** section, select the option you want to use for
your default target project.
1. Select **Save changes**.