- 병합 요청 만들기
- 병합 요청 보기
- 병합 요청 목록 필터링
- 병합 요청에 변경 사항 추가하기
- 병합 요청에 사용자 할당
- 병합 요청 병합
- 병합 요청 닫기
- 병합 요청 워크플로우
- 병합 요청의 활동 필터링
- 스레드 해결하기
- 알림 및 할 일 이동하기
- 관련 주제
병합 요청
- 사이드바 작업 메뉴가 변경되었습니다 GitLab 16.0에서 이슈, 사건 및 에픽에 대한 작업도 이동합니다.
- GitLab 16.9에서 일반적으로 사용 가능. 기능 플래그
moved_mr_sidebar
가 제거되었습니다.
A merge request (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, 사용자가 이미 승인한 병합 요청에 대해. Premium 및 Ultimate만 가능.
- Approver, 이 사용자가 승인할 수 있는 병합 요청에 대해. (자세한 내용은 Code owners를 참조하세요). Premium 및 Ultimate만 가능.
- Merged-By, 이 사용자가 병합한 병합 요청에 대해.
- Reviewer, 이 사용자가 검토한 병합 요청에 대해.
- 속성을 필터링하는 데 사용할 연산자를 선택하거나 입력합니다. 사용 가능한 연산자는 다음과 같습니다:
-
=
: 이다 -
!=
: 아니다
-
-
속성을 기준으로 필터링할 텍스트를 입력합니다.
일부 속성은 None 또는 Any로 필터링할 수 있습니다.
-
이 프로세스를 반복하여 여러 속성으로 필터링하며, 논리적
AND
로 결합합니다. - 정렬 방향을 선택합니다. 내림차순의 경우 를 선택하고, 오름차순의 경우 를 선택합니다.
환경 또는 배포 날짜별
배포 날짜, 예를 들어 환경 또는 날짜별로 병합 요청을 필터링하려면 다음을 입력(또는 드롭다운 목록에서 선택)합니다:
- Environment
- Deployed-before
- Deployed-after
환경으로 필터링할 때, 드롭다운 목록이 표시되어 선택할 수 있는 모든 환경이 나타납니다.
Deployed-before
또는 Deployed-after
로 필터링할 때:
- 날짜는 환경에 배포(병합 커밋으로 트리거됨)가 성공적으로 완료된 시점을 의미합니다.
- 배포 날짜를 수동으로 입력해야 합니다.
- 배포 날짜는
YYYY-MM-DD
형식을 사용합니다. 날짜 및 시간을 모두 지정하려면 큰따옴표("
)로 감싸야 합니다("YYYY-MM-DD HH:MM"
).
병합 요청에 변경 사항 추가하기
병합 요청에 변경 사항을 추가할 수 있는 권한이 있는 경우, 기존 병합 요청에 여러 가지 방법으로 변경 사항을 추가할 수 있습니다. 이러한 방법은 귀하의 변경 복잡성과 개발 환경에 대한 접근 권한 여부에 따라 다릅니다:
-
웹 IDE에서 변경 사항 편집하기 브라우저에서 . 키보드 단축키를 사용하여. 이 브라우저 기반 방법을 사용하여 여러 파일을 편집하거나 Git 명령에 익숙하지 않을 경우 사용합니다. 웹 IDE에서 테스트를 실행할 수는 없습니다.
-
Gitpod에서 변경 사항 편집하기, 파일을 편집하고 이후에 테스트를 실행하기 위해 완전한 기능을 갖춘 환경이 필요한 경우. Gitpod는 GitLab Development Kit (GDK)를 실행하는 것을 지원합니다. Gitpod를 사용하려면 사용자 계정에서 Gitpod를 활성화해야 합니다.
-
명령줄에서 변경 사항 푸시하기, Git 및 명령줄에 익숙한 경우.
병합 요청에 사용자 할당
병합 요청을 사용자에게 할당하려면, 병합 요청의 텍스트 영역에서 /assign @user
빠른 작업을 사용하거나:
-
왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
-
코드 > 병합 요청을 선택하고 병합 요청을 찾습니다.
-
오른쪽 사이드바를 확장하고 담당자 섹션을 찾습니다.
-
편집을 선택합니다.
-
할당할 사용자를 검색하고 선택합니다. GitLab Free는 병합 요청당 한 명의 담당자를 허용하지만, GitLab Premium 및 GitLab Ultimate는 여러 명의 담당자를 허용합니다:
GitLab은 사용자의 할당된 병합 요청 페이지에 병합 요청을 추가합니다.
병합 요청 병합
병합 요청 검토 과정에서, 검토자는 병합 요청에 대한 피드백을 제공합니다.
검토자가 병합 요청의 내용이 수용 가능하다고 판단하면, 검토자는
자동 병합을 설정할 수 있으며, 일부 병합 체크가 실패하더라도 가능합니다.
병합 요청이 자동 병합으로 설정되면, 모든 병합 체크가 통과한 후, 추가적인 조치 없이 병합됩니다.
병합 요청 닫기
병합 요청 작업을 영구적으로 중단하기로 결정했다면,
삭제하는 것보다 닫으십시오.
전제 조건:
- 당신은 병합 요청의 작성자 또는 담당자여야 하며, 또는
- 프로젝트에서 개발자, 유지 관리자 또는 소유자 역할을 가져야 합니다.
프로젝트에서 병합 요청을 닫으려면:
-
왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
-
코드 > 병합 요청을 선택하고 병합 요청을 찾습니다.
-
페이지 하단의 댓글 상자까지 스크롤합니다.
-
댓글 상자 아래에서 병합 요청 닫기를 선택합니다.
GitLab은 병합 요청을 닫지만, 병합 요청 기록, 댓글 및 관련 파이프라인을 보존합니다.
병합 시 소스 브랜치 삭제
병합 요청의 소스 브랜치를 삭제할 수 있습니다:
- 병합 요청을 생성할 때, 병합 요청이 수락되면 소스 브랜치 삭제를 선택합니다.
- 병합 요청을 병합할 때, 유지 관리자 역할이 있으면 소스 브랜치 삭제를 선택합니다.
관리자는 프로젝트 설정에서 이 옵션을 기본값으로 설정할 수 있습니다.
타겟 브랜치 병합 시 병합 요청 업데이트
Offering: GitLab.com, Self-managed, GitLab Dedicated
병합 요청은 종종 서로 연결되어 있으며, 하나의 병합 요청은 다른 병합 요청에서 추가되거나 변경된 코드에 의존합니다.
개별 병합 요청을 작게 유지하기 위해 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 CI/CD를 위한 수동 작업으로 변경 사항이 프로덕션에 배포됩니다.
- 여러분의 구현이 고객에게 성공적으로 전송됩니다.
회사의 웹사이트를 위한 웹페이지를 작성하는 웹 개발자의 경우:
-
새로운 브랜치를 체크아웃하고 병합 요청을 통해 새 페이지를 제출합니다.
-
리뷰어들로부터 피드백을 받습니다.
-
리뷰 앱으로 변경 사항을 미리 봅니다.
-
웹 디자이너에게 구현을 요청합니다.
-
매니저에게 승인을 요청합니다.
- 승인이 후, GitLab은:
- 커밋을 스쿼시합니다.
- 커밋을 병합합니다.
- GitLab Pages를 통해 변경 사항을 스테이징에 배포합니다.
- 프로덕션 팀이 병합 커밋을 프로덕션에 체리 픽합니다.
병합 요청의 활동 필터링
- GitLab 15.11에서
mr_activity_filters
라는 플래그와 함께 소개되었습니다. 기본적으로 비활성화되어 있습니다.- GitLab 16.0에서 GitLab.com에서 활성화되었습니다.
- GitLab 16.3에서 자체 관리형에서 기본적으로 활성화되었습니다.
- GitLab 16.5에서 일반적으로 사용 가능하게 되었습니다. 기능 플래그
mr_activity_filters
가 제거되었습니다.- 봇 댓글 필터링이 GitLab 16.9에서 도입되었습니다.
병합 요청의 이력을 이해하기 위해, 활동 피드를 필터링하여 당신에게 관련된 항목만 표시하세요.
-
왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
-
코드 > 병합 요청을 선택합니다.
-
병합 요청을 선택합니다.
-
활동으로 스크롤합니다.
-
페이지 오른쪽에서 활동 필터를 선택하여 필터 옵션을 표시합니다.
이미 필터 옵션을 선택한 경우, 이 필드는 활동 + 5개 더와 같이 선택 사항 요약을 보여줍니다. -
보고 싶은 활동 유형을 선택합니다. 옵션에는:
- 담당자 및 리뷰어
- 승인
- 댓글 (봇의)
- 댓글 (사용자의)
- 커밋 및 브랜치
- 편집
- 레이블
- 잠금 상태
- 멘션
- 병합 요청 상태
- 추적
-
선택 사항이 선택 사항에 따라 모든 병합 요청에 걸쳐 지속됩니다. 오른쪽의 정렬 버튼을 클릭하여 정렬 순서를 변경할 수 있습니다.
-
선택 사항을 선택적으로 정렬()하여 정렬 순서를 반전시킵니다.
스레드 해결하기
병합 요청에서 대화를 마치고 싶을 때,
GitLab은 병합 요청의 오른쪽 상단 모퉁이에 해결되지 않은 스레드의 수를 표시합니다. 다음과 같이: 7개의 해결되지 않은 스레드.
병합 요청의 모든 해결되지 않은 스레드를 문제로 이동하기
병합 요청에 여러 개의 해결되지 않은 스레드가 있는 경우, 이를 별도로 해결하기 위해 문제를 생성할 수 있습니다:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 코드 > 병합 요청을 선택하고 병합 요청을 찾습니다.
- 병합 요청의 오른쪽 상단에서 해결되지 않은 스레드 드롭다운 목록을 찾고 스레드 옵션 ()을 선택합니다.
- 새 문제로 모두 해결을 선택합니다.
- 새 문제의 필드를 작성하고 문제 생성을 선택합니다.
GitLab은 모든 스레드를 해결된 것으로 표시하고, 병합 요청에서 새로 생성된 문제로의 링크를 추가합니다.
병합 요청에서 해결되지 않은 한 개의 스레드를 문제로 이동하기
병합 요청에 특정한 해결되지 않은 스레드가 있는 경우, 이를 별도로 해결하기 위해 문제를 생성할 수 있습니다:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 코드 > 병합 요청을 선택하고 병합 요청을 찾습니다.
- 병합 요청에서 이동하려는 스레드를 찾습니다.
- 스레드에 대한 마지막 답글 아래에서 스레드 해결 옆의 스레드를 해결하기 위한 문제 생성 ()을 선택합니다.
- 새 문제의 필드를 작성하고 문제 생성을 선택합니다.
GitLab은 스레드를 해결된 것으로 표시하고, 병합 요청에서 새로 생성된 문제로의 링크를 추가합니다.
모든 스레드가 해결될 때까지 병합 방지하기
스레드가 해결되지 않은 동안 병합 요청이 병합되지 않도록 할 수 있습니다. 이 설정을 활성화하면, 병합 요청의 해결되지 않은 스레드 카운터가 하나 이상의 스레드가 해결되지 않을 경우 주황색으로 표시됩니다.
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 설정 > 병합 요청을 선택합니다.
- 병합 확인 섹션에서 모든 스레드는 해결되어야 합니다 체크박스를 선택합니다.
- 변경 사항 저장을 선택합니다.
새로운 푸시가 오래된 스레드를 자동으로 해결하기
새로운 푸시가 설명하는 줄을 변경할 때 병합 요청에서 스레드를 자동으로 해결하도록 설정할 수 있습니다.
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 설정 > 병합 요청을 선택합니다.
- 병합 옵션 섹션에서 오래된 상태가 된 병합 요청 다이프 스레드를 자동으로 해결을 선택합니다.
- 변경 사항 저장을 선택합니다.
푸시가 다이프 섹션을 오래된 상태로 만들면 스레드가 이제 해결됩니다. 변경되지 않는 줄의 스레드와 최상위 해결 가능한 스레드는 해결되지 않습니다.
알림 및 할 일 이동하기
DETAILs: Tier: Free, Premium, Ultimate Offering: Self-managed
- GitLab 16.5에 도입됨 플래그와 함께
notifications_todos_buttons
라는 이름의. 기본적으로 비활성화되어 있습니다.- 문제, 사건 및 에픽도 업데이트되었습니다.
notifications_todos_buttons
라는 이름의 기능 플래그를 활성화할 수 있습니다.GitLab.com 및 GitLab 전용에서는 이 기능이 제공되지 않습니다.
이 기능 플래그를 활성화하면 알림 및 할 일 항목 버튼이 페이지의 오른쪽 상단 모퉁이로 이동합니다.
- 병합 요청에서는 이 버튼이 탭의 맨 오른쪽에 표시됩니다.
- 문제, 사건 및 에픽에서는 이 버튼이 오른쪽 사이드바의 상단에 표시됩니다.