dev.syw

GitLab의 핵심 협업 단위인 Merge Request를 만들고 리뷰, 승인, 머지 옵션과 이슈 연결까지 다룬다.

Merge Request (MR)

Merge Request(MR)는 한 브랜치의 변경을 다른 브랜치로 합치자고 제안하는 단위입니다. GitHub의 Pull Request(PR)에 해당하며, GitLab에서 코드 리뷰와 협업이 이루어지는 중심 무대입니다. 변경 내용을 논의하고, 자동 검사(파이프라인)를 돌리고, 승인을 거쳐 안전하게 머지합니다.

학습 목표

  • MR을 생성하고 변경 사항을 리뷰 대상으로 올린다.
  • 코멘트와 Approvals로 리뷰 과정을 운영한다.
  • squash, fast-forward 등 머지 옵션의 차이를 이해한다.
  • MR을 이슈와 연결해 작업을 추적한다.

MR 생성하기

먼저 작업 브랜치를 만들어 변경을 push합니다.

git switch -c feature/login
# 작업 후
git push -u origin feature/login

push하면 GitLab이 "Create merge request" 링크를 안내해 줍니다. 또는 프로젝트의 Merge requests 메뉴에서 New merge request를 눌러 만들 수 있습니다.

MR 생성 화면에서 정하는 주요 항목입니다.

  • Source branch / Target branch: 어느 브랜치를 어디로 합칠지
  • Title / Description: 변경 요약과 배경 설명
  • Assignee / Reviewer: 담당자와 리뷰어
  • Labels / Milestone: 분류와 릴리스 묶음

작업이 아직 진행 중이면 제목 앞에 Draft:를 붙여 머지를 막아둘 수 있습니다. 리뷰 준비가 끝나면 Draft 표시를 해제합니다.

리뷰와 코멘트

리뷰어는 Changes 탭에서 변경된 코드를 줄 단위로 보고 코멘트를 남깁니다.

  • 한 줄 또는 여러 줄을 선택해 인라인 코멘트를 단다.
  • 여러 코멘트를 모아 한 번에 제출하려면 Start a review로 묶는다.
  • 코멘트는 thread(스레드)로 관리되며, 해결되면 Resolve thread로 닫는다.

토론이 끝나지 않은 스레드가 남아 있으면 머지를 막도록 설정할 수도 있어, 논의가 누락되는 것을 방지합니다.

Approvals (승인)

Approvals는 일정 수 이상의 승인을 받아야만 머지할 수 있게 하는 규칙입니다.

  • 승인 필요 인원 수를 정한다.
  • 특정 사용자나 그룹을 필수 승인자로 지정한다(요금제에 따라 차이가 있음).
  • 코드를 올린 본인은 자기 MR을 승인하지 못하도록 막을 수 있다.

승인 규칙은 코드 품질과 책임 소재를 명확히 하는 안전장치입니다.

머지 옵션

머지 직전에 어떻게 합칠지 선택할 수 있습니다. 프로젝트 설정에서 기본 동작을 정하거나 MR마다 고를 수 있습니다.

  • Merge commit: 일반적인 병합 커밋을 만든다. 분기 이력이 그대로 남는다.
  • Fast-forward merge: 별도 병합 커밋 없이 일직선 이력을 유지한다. target 브랜치가 앞서 있으면 미리 rebase가 필요하다.
  • Squash commits: source 브랜치의 여러 커밋을 하나로 합쳐 target에 올린다. 이력이 깔끔해진다.

또한 "머지 후 source 브랜치 삭제" 옵션으로 작업이 끝난 브랜치를 자동 정리할 수 있습니다.

MR과 이슈 연결

MR과 이슈를 연결하면 "왜 이 변경을 했는지"와 "무엇을 작업했는지"가 한눈에 이어집니다.

MR 설명이나 커밋 메시지에 닫기 키워드를 쓰면, MR이 머지될 때 해당 이슈가 자동으로 닫힙니다.

git commit -m "로그인 폼 검증 추가 (Closes #42)"

Closes #42, Fixes #42 같은 키워드를 MR 설명에 적어도 동일하게 동작합니다. 이렇게 하면 작업 흐름이 이슈에서 MR로, 다시 머지로 자연스럽게 추적됩니다.

요약

Merge Request는 GitLab 협업의 중심입니다. 브랜치를 push하고 MR을 만들면 코드 리뷰, 코멘트 스레드, Approvals를 통해 변경을 검증할 수 있습니다. squash와 fast-forward 같은 머지 옵션으로 이력을 원하는 형태로 관리하고, 닫기 키워드로 이슈와 연결해 작업을 추적합니다. 다음 강의에서는 MR과 함께 자동으로 도는 CI/CD 파이프라인을 다룹니다.

댓글 0

GitLab강좌에 대한 댓글입니다.

댓글을 작성하려면 로그인이 필요합니다.