- 병합 요청 만들기
- 병합 요청 보기
- 병합 요청 목록 필터링
- 병합 요청에 변경 사항 추가
- 병합 요청에 사용자 지정하기
- 병합 요청 병합하기
- 병합 요청 닫기
- 병합 요청 워크플로우
- 병합 요청에서 활동 필터링
- 쓰레드 해결하기
- 알림 및 할 일 이동
- 관련 주제
병합 요청
- 사이드바 작업 메뉴는 변경되었으며, GitLab 16.0에서 이슈, 사건 및 에픽의 작업을 이동할 수 있습니다.
- GitLab 16.9에서 일반적으로 사용 가능합니다. Feature flag
moved_mr_sidebar
가 제거되었습니다.
병합 요청(MR)은 소스 브랜치에서 대상 브랜치로 변경 사항을 통합하기 위한 제안입니다.
병합 요청을 열면 병합하기 전에 변경 사항을 시각화하고 협업할 수 있습니다. 병합 요청에는 다음이 포함됩니다.
- 요청 설명.
- 코드 변경 및 인라인 코드 리뷰.
- CI/CD 파이프라인에 대한 정보.
- 토론 스레드를 위한 코멘트 섹션.
- 커밋 목록.
병합 요청 만들기
병합 요청을 생성하는 다양한 방법을 알아보세요.
병합 요청 템플릿 사용
병합 요청을 생성할 때 GitLab은 병합 요청에 데이터를 추가할 설명 템플릿의 존재 여부를 확인합니다. GitLab은 1에서 5까지의 순서로 이러한 위치를 확인하고 첫 번째 템플릿을 병합 요청에 적용합니다.
이름 | 프로젝트 UI 설정 | 그룹default.md
| 인스턴스default.md
| 프로젝트default.md
| 템플릿 없음 |
---|---|---|---|---|---|
표준 커밋 메시지 | 1 | 2 | 3 | 4 | 5 |
Closes #1234 와 같은 이슈 마감 패턴을 사용하는 커밋 메시지
| 1 | 2 | 3 | 4 | 5 * |
이슈 ID가 접두어로 붙은 브랜치 이름, 예: 1234-example
| 1 * | 2 * | 3 * | 4 * | 5 * |
병합 요청 보기
프로젝트, 그룹 또는 본인의 병합 요청을 확인할 수 있습니다.
나에게 할당된 모든 병합 요청을 보려면 Shift + m 키보드 바로 가기를 사용하거나 다음을 선택하세요.
- 왼쪽 사이드바에서 검색 또는 이동을 선택합니다.
- 드롭다운 목록에서 내가 할당된 병합 요청을 선택합니다.
또는:
- 왼쪽 사이드바에서 코드 > 병합 요청 ()를 선택합니다.
- 드롭다운 목록에서 할당됨을 선택합니다.
프로젝트의 모든 병합 요청을 보려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하여 프로젝트를 찾습니다.
- 코드 > 병합 요청을 선택합니다.
또는, 키보드 바로 가기를 사용하려면 g + m을 누릅니다.
그룹의 모든 프로젝트의 병합 요청을 보려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하여 그룹을 찾습니다.
- 코드 > 병합 요청을 선택합니다.
그룹에 하위 그룹이 있는 경우 이 뷰에는 하위 그룹 프로젝트의 병합 요청도 표시됩니다.
병합 요청 목록 필터링
source-branch
로 필터링이 GitLab 16.6에서 도입되었습니다.merged-by
로 필터링이 GitLab 16.9에서 도입되었습니다. 기능 플래그mr_merge_user_filter
가 활성화된 경우에만 사용할 수 있습니다.merged-by
로 필터링이 GitLab 17.0에서 일반적으로 사용 가능해졌습니다. 기능 플래그mr_merge_user_filter
가 제거되었습니다.
병합 요청 목록을 필터링하려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하여 프로젝트를 찾습니다.
- 코드 > 병합 요청을 선택합니다.
- 병합 요청 목록 상단에서 검색 또는 결과 필터링을 선택합니다.
- 드롭다운 목록에서 필터링하려는 속성을 선택합니다. 일부 예시:
- 환경 또는 배포 날짜별로.
-
ID: 필터링할
#30
을 입력하여 30번 병합 요청만 반환합니다. - 사용자 필터: 다음 중 하나를 입력하거나 드롭다운 목록에서 선택하여 사용자 목록을 표시할 수 있습니다:
- Approved-By: 사용자에 의해 이미 승인된 병합 요청. 프리미엄 및 얼티밋 전용.
- Approver: 이 사용자가 승인할 수 있는 병합 요청. (자세한 정보는 코드 소유자를 읽어보세요). 프리미엄 및 얼티밋 전용.
- Merged-By: 이 사용자가 병합한 병합 요청.
- Reviewer: 이 사용자가 검토한 병합 요청.
- 필터링할 속성에 사용할 연산자를 선택하거나 입력하세요. 다음과 같은 연산자를
사용할 수 있습니다:
-
=
: Is -
!=
: Is not
-
- 속성으로 필터링할 텍스트를 입력하세요. 일부 속성을 None 또는 Any로 필터링할 수 있습니다.
- 논리
AND
로 결합된 더 많은 속성으로 필터링하려면이 프로세스를 반복하세요. - 정렬 방향을 선택하세요. 오름차순인 경우 을, 내림차순인 경우 를 선택하세요.
환경 또는 배포 날짜별로
환경이나 날짜와 같이 배포 데이터로 병합 요청을 필터링하려면 다음과 같이 입력하거나 드롭다운 목록에서 선택할 수 있습니다:
- 환경
- 배포 전
- 배포 후
환경으로 필터링하려면 드롭다운 목록에서 선택할 수 있는 모든 환경이 제시됩니다.
Deployed-before
또는 Deployed-after
로 필터링하려면:
- 날짜는 환경으로 배포가 완료된 날짜를 의미합니다 (병합 커밋으로 트리거된).
- 배포 날짜를 수동으로 입력해야 합니다.
- 배포 날짜는
YYYY-MM-DD
형식을 사용합니다. 날짜와 시간을 모두 지정하려면 이중 인용부호("
)로 묶으세요("YYYY-MM-DD HH:MM"
).
병합 요청에 변경 사항 추가
병합 요청에 변경 사항을 추가할 수 있는 경우 여러 가지 방법으로 기존의 병합 요청에 변경 내용을 추가할 수 있습니다. 이러한 방법은 변경의 복잡성 및 개발 환경에 액세스해야 하는지 여부에 따라 다릅니다.
- 브라우저에서 . 키보드 바로 가기를 사용하여 Web IDE에서 변경 사항 편집합니다. 여러 파일을 편집하거나 Git 명령에 익숙하지 않은 경우에 사용하는 브라우저 기반 방법입니다. Web IDE에서 테스트를 실행할 수 없습니다.
- 필요한 경우 Gitpod에서 변경 사항 편집합니다. 여기서 파일 편집 및 테스트 실행을 위해 완전한 기능을 갖춘 환경이 필요한 경우입니다. Gitpod에서는 GitLab 개발 키트 (GDK)를 지원합니다. Gitpod를 사용하려면 사용자 계정에서 Gitpod를 활성화해야 합니다.
- Git 명령행에서 변경 사항 푸시합니다. Git과 명령행에 익숙한 경우에 사용합니다.
병합 요청에 사용자 지정하기
병합 요청을 사용자에게 할당하려면 다음을 수행합니다:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- Code > 병합 요청를 선택하고 병합 요청을 찾습니다.
- 오른쪽 사이드바에서 오른쪽 사이드바를 확장하고 담당자 섹션을 찾습니다.
- 편집을 선택합니다.
-
할당하려는 사용자를 검색하고 사용자를 선택합니다. GitLab Free는 병합 요청 당 단일 담당자를 허용하지만, GitLab Premium 및 GitLab Ultimate는 여러 담당자를 허용합니다.:
GitLab은 해당 병합 요청을 사용자의 할당된 병합 요청 페이지에 추가합니다.
병합 요청 병합하기
병합 요청 검토 프로세스 중에 리뷰어는 병합 요청에 대한 피드백을 제공합니다. 리뷰어가 병합 요청의 내용이 적절하다고 결정하면, 리뷰어는 일부 병합 확인이 실패하더라도 자동 병합을 설정할 수 있습니다. 병합 요청이 자동 병합으로 설정되면 모든 병합 확인이 통과하면 추가 조치 없이 병합됩니다.
병합 요청 닫기
병합 요청을 영구적으로 중단하려면 삭제하는 대신 닫으십시오.
필수 조건:
- 병합 요청의 작성자 또는 담당자여야 합니다.
- 프로젝트에서 Developer, Maintainer 또는 Owner 역할을 가져야 합니다.
프로젝트에서 병합 요청을 닫으려면 다음을 수행합니다:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- Code > 병합 요청를 선택하고 병합 요청을 찾습니다.
- 페이지 하단의 댓글 상자까지 스크롤합니다.
- 댓글 상자 아래에서 병합 요청 닫기를 선택합니다.
GitLab은 병합 요청을 닫지만, 병합 요청 및 관련 파이프라인의 기록을 보존합니다.
병합시 소스 브랜치 삭제
병합 요청의 소스 브랜치를 삭제할 수 있습니다:
- 병합 요청을 생성할 때, 병합 요청이 수락될 때 소스 브랜치 삭제를 선택합니다.
- 병합 요청을 병합할 때 Maintainer 역할을 가지고 있는 경우, 소스 브랜치 삭제를 선택합니다.
관리자는 프로젝트 설정에서 이 옵션을 기본값으로 설정할 수 있습니다.
대상 브랜치가 병합될 때 병합 요청 업데이트
병합 요청은 종종 서로 연결된 병합 요청으로 연결되어 있습니다. 한 병합 요청은 다른 병합 요청에서 추가되거나 변경된 코드에 의존합니다. 개별 병합 요청을 작게 유지하기 위해 GitLab은 main
으로 대상 브랜치가 병합될 때 최대 네 개의 열린 병합 요청을 업데이트할 수 있습니다. 예를 들어:
-
병합 요청 1:
feature-alpha
를main
에 병합. -
병합 요청 2:
feature-beta
를feature-alpha
에 병합.
이러한 병합 요청이 동시에 열려 있고, 병합 요청 1 (feature-alpha
)이 main
에 병합되면, GitLab은 병합 요청 2의 대상을 feature-alpha
에서 main
으로 업데이트합니다.
서로 연결된 내용을 갖는 병합 요청은 일반적으로 다음 중 하나의 방법으로 처리됩니다:
- 병합 요청 1이 먼저
main
에 병합됩니다. 그런 다음 병합 요청 2가main
을 대상으로 다시 설정됩니다. - 병합 요청 2가
feature-alpha
에 병합됩니다.feature-alpha
및feature-beta
의 내용을 포함하는 업데이트된 병합 요청 1이main
에 병합됩니다.
이 기능은 병합 요청이 병합될 때에만 작동합니다. 병합 후 소스 브랜치 삭제를 선택하더라도 열린 병합 요청을 다시 대상으로 설정하지 않습니다. 이 개선 사항은 추가 제안됨으로 이루어졌습니다.
병합 요청 워크플로우
팀에서 작업하는 소프트웨어 개발자를 위해:
- 새 브랜치를 체크아웃하고 병합 요청을 통해 변경 사항을 제출합니다.
- 팀에서 피드백을 수집합니다.
- 코드 품질 보고서를 통해 구현을 최적화하도록 작업합니다.
- GitLab CI/CD에서 단위 테스트 보고서로 변경 사항을 검증합니다.
- 프로젝트와 호환되지 않는 라이선스의 종속성을 사용하지 않도록 라이선스 승인 정책을 따릅니다.
- 관리자로부터 승인을 요청합니다.
- 관리자는:
- 최종 검토를 하고 커밋을 푸시합니다.
- 병합 요청을 승인합니다.
- 파이프라인이 성공할 때 병합으로 설정합니다(이전의 파이프라인이 성공할 때 병합).
- 변경 사항이 수동 작업을 통해 프로덕션에 배포됩니다.
- 구현이 성공적으로 고객에게 제공되었습니다.
회사 웹사이트의 웹 개발자를 위해 새 페이지를 제출합니다.
- 새 브랜치를 체크아웃하고 병합 요청을 통해 새로운 페이지를 제출합니다.
- 리뷰어로부터 피드백을 수집합니다.
- 리뷰 앱을 통해 변경 사항을 미리 보기합니다.
- 웹 디자이너에게 처리 방법을 문의합니다.
- 관리자로부터 승인을 요청합니다.
- 승인 후, GitLab은:
- 커밋을 통합합니다.
- 변화를 병합합니다.
- GitLab Pages를 통해 변경을 스테이징에 배포합니다.
- 프로덕션팀은 병합 커밋을 프로덕션으로 체리픽합니다.
병합 요청에서 활동 필터링
- GitLab 15.11에 소개됨 기능 플래그인
mr_activity_filters
로 활성화되지 않은 기능입니다.- GitLab 16.0에서 GitLab.com에 적용됨.
- GitLab 16.3에서 self-managed에 기본으로 적용됨.
- GitLab 16.5에서 일반 사용 가능. 기능 플래그
mr_activity_filters
삭제됨.- GitLab 16.9에 봇 코멘트 필터링이 소개됨.
병합 요청의 이력을 이해하기 위해 활동 피드를 필터링하여 본인에게 relevant한 항목만 표시하세요.
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- Code > 병합 요청을 선택합니다.
- 병합 요청을 선택합니다.
- 활동으로 스크롤합니다.
- 페이지 오른쪽에 활동 필터를 선택하여 필터 옵션을 표시합니다. 이미 필터 옵션을 선택한 경우, 이 필드에는 활동 + 5개 더 보기와 같이 선택한 내용의 요약이 표시됩니다.
-
보고 싶은 활동 유형을 선택합니다. 옵션으로는 다음이 있습니다:
- 담당자 및 리뷰어
- 승인
- 코멘트(봇으로부터)
- 코멘트(사용자로부터)
- 커밋 및 브랜치
- 편집
- 라벨
- 잠금 상태
- 언급
- 병합 요청 상태
- 추적
- 선택 사항. Sort ()를 선택하여 정렬 순서를 역으로 변경합니다.
선택한 사항은 모든 병합 요청에서 유지됩니다. 또한 정렬 순서를 변경할 수 있습니다. 오른쪽에 있는 정렬 버튼을 클릭하여 정렬 순서를 변경할 수 있습니다.
쓰레드 해결하기
병합 요청에서 대화를 마치려면, 쓰레드를 해결하세요.
GitLab은 병합 요청의 오른쪽 상단에 미해결된 쓰레드 수를 표시합니다. 예시: 미해결된 쓰레드 7개.
병합 요청에서 미해결된 모든 쓰레드를 이슈로 이동
병합 요청에서 미해결된 여러 쓰레드가 있는 경우, 별도로 해결하기 위해 이슈를 생성할 수 있습니다:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- Code > 병합 요청을 선택하고 병합 요청을 찾습니다.
- 병합 요청에서, 오른쪽 상단에서 미해결된 쓰레드 드롭다운 목록을 찾고 쓰레드 옵션 ()을 선택합니다.
- 새 이슈로 모두 해결을 선택합니다.
- 새 이슈의 필드를 작성하고 이슈 생성을 선택합니다.
GitLab은 모든 쓰레드를 해결 상태로 표시하고, 병합 요청에서 새로 생성된 이슈로의 링크를 추가합니다.
병합 요청에서 하나의 미해결된 쓰레드를 이슈로 이동
병합 요청에서 특정 미해결된 쓰레드가 있는 경우, 별도로 해결하기 위해 이슈를 생성할 수 있습니다:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- Code > 병합 요청을 선택하고 병합 요청을 찾습니다.
- 원하는 쓰레드를 병합 요청에서 찾습니다.
- 쓰레드의 마지막 답글 아래에서 쓰레드 해결 옆 쓰레드를 해결하기 위해 이슈 생성()를 선택합니다.
- 새 이슈의 필드를 작성하고 이슈 생성을 선택합니다.
GitLab은 쓰레드를 해결 상태로 표시하고, 병합 요청에서 새로 생성된 이슈로의 링크를 추가합니다.
모든 쓰레드가 해결되지 않으면 병합하지 못하게 하기
미해결된 쓰레드가 남아 있는 동안 병합 요청을 방지할 수 있습니다. 이 설정을 활성화하면, 병합 요청의 미해결된 쓰레드 카운터가 하나 이상의 쓰레드가 남아 있는 동안 주황색으로 표시됩니다.
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 설정 > 병합 요청을 선택합니다.
- 병합 확인 섹션에서 모든 쓰레드가 해결되어야 함 확인란을 선택합니다.
- 변경 사항 저장을 선택합니다.
병합 요청에서 쓰레드가 더 이상 유효하지 않을 때 자동으로 해결하기
새로운 푸시로 인해 쓰레드가 설명하는 라인이 변경될 때, 병합 요청에서 쓰레드를 자동으로 해결하도록 설정할 수 있습니다.
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 설정 > 병합 요청을 선택합니다.
- 병합 옵션 섹션에서 병합 요청 diff 쓰레드가 더 이상 유효하지 않을 때 자동으로 해결을 선택합니다.
- 변경 사항 저장을 선택합니다.
이제 새 푸시로 변경되는 라인에 따라 쓰레드가 자동으로 해결됩니다. 변경되지 않는 라인의 쓰레드 및 최상위 해결 가능한 쓰레드는 해결되지 않습니다.
알림 및 할 일 이동
DETAILs: Tier: Free, Premium, Ultimate Offering: Self-managed
- GitLab 16.5에서 소개됨 기능 플래그인
notifications_todos_buttons
로 활성화되지 않은 기능입니다.- 이슈, 사건 및 에픽도 업데이트되었습니다.
기능 플래그: self-managed GitLab에서는 이 기능이 기본적으로 사용할 수 없습니다. 관리자는 알림 및 할 일 아이템 버튼을 활성화할 수 있습니다. GitLab.com 및 GitLab Dedicated에서는 이 기능을 사용할 수 없습니다.
이 기능 플래그를 활성화하면 알림 및 할 일 버튼이 페이지의 오른쪽 상단으로 이동합니다.
- 병합 요청에서 이러한 버튼은 탭의 가장 오른쪽에 표시됩니다.
- 이슈, 사건 및 에픽에서는 이 버튼이 오른쪽 사이드바 맨 위에 표시됩니다.