머지 리퀘스트 생성
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
머지 리퀘스트를 생성할 준비가 되면, 워크플로에 맞는 방법을 사용하세요. 머지 리퀘스트를 생성할 때 GitLab은 프로젝트의 브랜치 명명 규칙을 적용합니다. 프로젝트의 상단 바에서 머지 리퀘스트를 생성할 수 있습니다: 머지 리퀘스트 목록에서 머지 리퀘스트를 생성할 수 있습니다.
머지 리퀘스트를 생성할 준비가 되면, 워크플로에 맞는 방법을 사용하세요. 다음을 통해 머지 리퀘스트를 생성할 수 있습니다:
- GitLab UI에서.
- 명령줄에서,
glab mr명령어 또는 push 옵션과 결합된 Git 명령어로. - Visual Studio Code 확장에서.
- 이메일을 보내서.
- 머지 리퀘스트 API로.
머지 리퀘스트를 생성할 때 GitLab은 프로젝트의 브랜치 명명 규칙을 적용합니다. 머지 리퀘스트를 브랜치에 연결하려면 브랜치 명명 패턴을 따르세요.
상단 바에서#
프로젝트의 상단 바에서 머지 리퀘스트를 생성할 수 있습니다:
- 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 오른쪽 상단에서 Create new(+)를 선택한 후 New merge request를 선택합니다.
머지 리퀘스트 목록에서#
머지 리퀘스트 목록에서 머지 리퀘스트를 생성할 수 있습니다.
- 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 Code > Merge requests를 선택합니다.
- 오른쪽 상단에서 New merge request를 선택합니다.
- 소스 브랜치와 대상 브랜치를 선택한 후 Compare branches and continue를 선택합니다.
- New merge request 페이지의 필드를 작성한 후 Create merge request를 선택합니다.
각 브랜치는 열려 있는 하나의 머지 리퀘스트에만 연결될 수 있습니다. 이 브랜치에 대한 머지 리퀘스트가 이미 있는 경우 기존 머지 리퀘스트에 대한 링크가 표시됩니다.
이슈에서#
개발 워크플로에 모든 머지 리퀘스트에 이슈가 필요한 경우, 프로세스를 빠르게 하기 위해 이슈에서 직접 브랜치를 생성할 수 있습니다. 새 브랜치와 나중에 생성될 머지 리퀘스트는 이 이슈와 관련된 것으로 표시됩니다. 머지 리퀘스트가 머지되면 자동 이슈 닫기가 비활성화되지 않는 한 이슈가 자동으로 닫힙니다.
이슈에서 새 브랜치#
브랜치와 머지 리퀘스트를 동시에 생성하려면:
- 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 Plan > Work items를 선택한 후 Type = Issue로 필터링하고 이슈를 선택합니다.
- 이슈 설명 하단으로 이동합니다.
- Create merge request > Create merge request and branch를 선택합니다.
- 대화 상자에서 제안된 브랜치 이름을 검토합니다. 이는 프로젝트의 브랜치 이름 템플릿을 기반으로 합니다.
- 선택 사항. 브랜치 이름이 이미 사용 중이거나 다른 브랜치 이름이 필요한 경우 이름을 변경합니다.
- 소스 브랜치 또는 태그를 선택합니다.
- Create merge request를 선택합니다.
이슈의 기존 브랜치#
히스토리
- GitLab 17.11에서 도입되었습니다.
사전 요구 사항:
- 이슈에 이미 브랜치가 연결되어 있어야 합니다.
- 프로젝트에서 머지 리퀘스트를 생성할 권한이 있어야 합니다.
Development에 이미 브랜치가 연결된 경우 머지 리퀘스트를 생성하려면:
- 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 Plan > Work items를 선택한 후 Type = Issue로 필터링하고 이슈를 선택합니다.
- Development 섹션에서 연결된 브랜치를 찾습니다.
- 브랜치 작업 메뉴(⋮)를 선택합니다.
- Create merge request를 선택합니다.
- New merge request 페이지의 필드를 작성한 후 Create merge request를 선택합니다.
머지 리퀘스트 양식은 이슈로 다시 연결하기 위한 적절한 키워드로 미리 채워집니다.
태스크에서#
히스토리
- GitLab 17.8에서 도입되었습니다.
팀이 이슈를 태스크로 나누는 경우, 프로세스를 빠르게 하기 위해 태스크에서 직접 브랜치를 생성할 수 있습니다. 새 브랜치와 나중에 생성될 머지 리퀘스트는 이 태스크와 관련된 것으로 표시됩니다. 머지 리퀘스트가 머지되면 자동 이슈 닫기가 비활성화되지 않는 한 태스크가 자동으로 닫힙니다.
태스크에서 새 브랜치#
사전 요구 사항:
- 태스크가 포함된 프로젝트에 대해 Developer, Maintainer, 또는 Owner 권한이 있어야 합니다.
브랜치와 머지 리퀘스트를 동시에 생성하려면:
- 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 Plan > Work items를 선택한 후 Type = Task로 필터링하고 태스크를 선택합니다.
- 태스크 설명 하단으로 이동합니다.
- Create merge request를 선택합니다.
- 대화 상자에서 제안된 브랜치 이름을 검토합니다. 이는 프로젝트의 브랜치 이름 템플릿을 기반으로 합니다.
- 선택 사항. 브랜치 이름이 이미 사용 중이거나 다른 브랜치 이름이 필요한 경우 이름을 변경합니다.
- 소스 브랜치 또는 태그를 선택합니다.
- Create merge request를 선택합니다.
태스크의 기존 브랜치#
히스토리
- GitLab 17.11에서 도입되었습니다.
사전 요구 사항:
- 태스크에 이미 브랜치가 연결되어 있어야 합니다.
- 프로젝트에서 머지 리퀘스트를 생성할 권한이 있어야 합니다.
Development에 이미 브랜치가 연결된 경우 머지 리퀘스트를 생성하려면:
- 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 Plan > Work items를 선택한 후 Type = Task로 필터링하고 태스크를 선택합니다.
- Development 섹션에서 연결된 브랜치를 찾습니다.
- 브랜치 작업 메뉴(⋮)를 선택합니다.
- Create merge request를 선택합니다.
- New merge request 페이지의 필드를 작성한 후 Create merge request를 선택합니다.
머지 리퀘스트 양식은 태스크로 다시 연결하기 위한 적절한 키워드로 미리 채워집니다.
Git 리포지터리가 비어 있을 때#
이슈 또는 태스크에서 머지 리퀘스트를 생성할 때 Git 리포지터리가 비어 있는 경우 GitLab은:
- 기본 브랜치를 생성합니다.
- 빈
README.md파일을 커밋합니다. - 이슈 또는 태스크 제목을 기반으로 새 브랜치를 생성하고 리디렉션합니다.
- 프로젝트가 Kubernetes와 같은 배포 서비스로 구성된 경우
.gitlab-ci.yml파일 생성을 도와 auto deploy를 설정하도록 안내합니다.
자동 이슈 및 태스크 닫기#
생성한 브랜치의 이름이 이슈 또는 태스크 번호로 시작하는 경우,
GitLab은 이슈 또는 태스크와 머지 리퀘스트를 교차 링크하고
머지 리퀘스트 설명에 닫기 패턴을 추가합니다. 대부분의 경우 이는 Closes #ID 형태이며, ID는 이슈 또는 태스크의 ID입니다. 프로젝트에 닫기 패턴이 구성된 경우 머지 리퀘스트가 머지되면 이슈 또는 태스크가 닫힙니다.
닫기 패턴(예: Closes #123)으로 연결되거나 키워드(예: Related to #456)로 언급된 작업 항목은
머지 리퀘스트 사이드바의 Work items 위젯에 자동으로 표시됩니다. 자세한 내용은
머지 리퀘스트의 작업 항목을 참조하세요.
웹 편집기에서#
웹 편집기로 다음을 수행할 때 머지 리퀘스트를 생성할 수 있습니다:
- 파일 생성, 편집, 업로드 또는 삭제.
- 디렉터리 생성.
브랜치를 생성할 때#
브랜치를 생성할 때 머지 리퀘스트를 생성할 수 있습니다.
- 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 Code > Branches를 선택합니다.
- 브랜치 이름을 입력하고 New branch를 선택합니다.
- 파일 목록 위에서 Create merge request를 선택합니다. 머지 리퀘스트가 생성됩니다. 기본 브랜치가 대상이 됩니다.
- 필드를 채우고 Create merge request를 선택합니다.
포크에서 작업할 때#
포크에서 머지 리퀘스트를 생성하여 메인 프로젝트에 기여할 수 있습니다.
-
상단 바에서 Search or go to를 선택하고 포크를 찾습니다.
-
왼쪽 사이드바에서 Code > Merge requests를 선택하고 New merge request를 선택합니다.
-
Source branch에서 변경 사항이 포함된 포크의 브랜치를 선택합니다.
-
Target branch에서:
-
포크가 아닌 업스트림 리포지터리를 선택합니다. 업스트림에 자주 변경 사항을 기여하는 경우 포크의 기본 대상을 설정하는 것을 고려하세요.
-
업스트림 리포지터리에서 브랜치를 선택합니다:

[!note] 포크의 가시성이 상위 리포지터리보다 더 제한적인 경우, 대상 브랜치는 기본적으로 포크의 기본 브랜치로 설정됩니다. 이는 포크의 비공개 정보가 노출되는 것을 방지합니다.
-
-
Compare branches and continue를 선택합니다.
-
Create merge request를 선택합니다. 머지 리퀘스트는 포크가 아닌 대상 리포지터리에 생성됩니다.
-
Developer, Maintainer, 또는 Owner 권한이 있는 경우 원하는 담당자, 검토자, 레이블 및 마일스톤을 추가합니다.
-
Submit merge request를 선택합니다.
머지 리퀘스트가 다른 리포지터리를 대상으로 하는 경우 다음을 사용합니다:
- 대상 프로젝트의 승인 규칙.
- 포크의 CI/CD 구성, 리소스 및 프로젝트 CI/CD 변수.
업스트림 프로젝트에서 CI/CD 파이프라인을 실행하려면 해당 프로젝트의 멤버여야 합니다. 포크의 머지 리퀘스트에 대해 상위 프로젝트에서 머지 리퀘스트 파이프라인을 실행하면 모든 변수가 파이프라인에서 사용 가능해집니다.
작업이 머지된 후, 더 이상 기여를 하지 않을 경우 포크 연결을 해제하세요.
기본 대상 프로젝트 설정#
기본적으로 포크에서 시작된 머지 리퀘스트는 포크가 아닌 업스트림 리포지터리를 대상으로 합니다. 업스트림 리포지터리 대신 포크된 리포지터리를 기본 대상으로 구성할 수 있습니다.
사전 요구 사항:
- 포크에서 작업 중이어야 합니다.
- 프로젝트에 Developer, Maintainer, 또는 Owner 권한이 있거나 머지 리퀘스트 생성이 허용되어야 합니다.
- 업스트림 리포지터리에서 머지 리퀘스트 생성이 허용되어야 합니다.
- 포크의 가시성 설정이 업스트림 리포지터리와 같거나 덜 엄격해야 합니다. 예를 들어: 포크가 비공개이지만 업스트림이 공개인 경우 이 설정이 표시되지 않습니다.
이를 수행하려면:
- 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 Settings > Merge requests를 선택합니다.
- Target project 섹션에서 기본 대상 프로젝트에 사용할 옵션을 선택합니다.
- Save changes를 선택합니다.
이메일을 보내서#
히스토리
- Email a new merge request to this project가 GitLab 18.6에서 Email merge request to this project로 이름 변경되었습니다.
GitLab에 이메일 메시지를 보내서 머지 리퀘스트를 생성할 수 있습니다. 머지 리퀘스트 대상 브랜치는 리포지터리의 기본 브랜치입니다.
사전 요구 사항:
- 머지 리퀘스트는 업스트림 리포지터리가 아닌 현재 리포지터리를 대상으로 해야 합니다.
- GitLab 관리자가 수신 이메일을 구성해야 합니다. 이 설정은 GitLab.com에서 활성화됩니다.
- GitLab 관리자가 이메일 답장을 구성해야 합니다. 이 설정은 GitLab.com에서 활성화됩니다.
- 프로젝트에 Developer, Maintainer, 또는 Owner 권한이 있거나 머지 리퀘스트 생성이 허용되어야 합니다.
이메일을 보내서 머지 리퀘스트를 생성하려면:
-
상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
-
왼쪽 사이드바에서 Code > Merge requests를 선택합니다.
-
프로젝트에 머지 리퀘스트가 있는 경우 Email merge request to this project를 선택합니다.
-
대화 상자에서 표시된 이메일 주소를 복사합니다. 이 주소를 비공개로 유지하세요. 이 주소를 가진 누구든지 귀하인 것처럼 이슈나 머지 리퀘스트를 생성할 수 있습니다.
-
이메일을 열고 다음 정보로 메시지를 작성합니다:
- To 줄은 복사한 이메일 주소입니다.
- Subject는 소스 브랜치 이름입니다.
- 이메일 본문은 머지 리퀘스트 설명입니다.
-
커밋을 추가하려면 메시지에
.patch파일을 첨부합니다. -
이메일을 보냅니다.
머지 리퀘스트가 생성됩니다.
이메일로 머지 리퀘스트를 생성할 때 첨부 파일 추가#
이메일에 패치를 첨부 파일로 추가하여 머지 리퀘스트에 커밋을 추가합니다.
- 패치의 합산 크기는 2MB 이하여야 합니다.
- 패치로 간주되려면 첨부 파일의 이름이
.patch로 끝나야 합니다. - 패치는 이름 순서로 처리됩니다.
- 제목의 소스 브랜치가 존재하지 않는 경우 리포지터리의
HEAD또는 기본 대상 브랜치에서 생성됩니다. 대상 브랜치를 수동으로 변경하려면/target_branch빠른 액션을 사용합니다. - 소스 브랜치가 이미 존재하는 경우 패치가 그 위에 적용됩니다.
관련 항목#
문제 해결#
이슈에 머지 리퀘스트 생성 옵션 없음#
다음의 경우 이슈에서 Create merge request 옵션이 표시되지 않습니다:
- 동일한 이름의 브랜치가 이미 존재합니다.
- 이 브랜치에 대한 머지 리퀘스트가 이미 존재합니다.
- 프로젝트에 활성 포크 관계가 있습니다.
- 프로젝트가 비공개이고 이슈가 기밀입니다.
이 버튼을 표시하기 위한 가능한 해결책 중 하나는 프로젝트의 포크 관계 제거입니다. 제거 후 포크 관계를 복원할 수 없습니다. 프로젝트는 더 이상 소스 프로젝트 또는 그 다른 포크에 머지 리퀘스트를 보내거나 받을 수 없습니다.
이메일 메시지를 처리할 수 없음#
이메일을 보내 머지 리퀘스트를 생성할 때 업스트림 리포지터리를 대상으로 시도하면 GitLab이 다음 오류로 응답합니다:
Unfortunately, your email message to GitLab could not be processed.
You are not allowed to perform this action. If you believe this is in error, contact a staff member.
