Git Merge request 만들기

SongWoo Yu·2025년 2월 25일

Git으로 관리하는 프로젝트에 문제가 생겼거나 유지보수하려 코드를 수정할 때 어떻게 진행해야 할까? 현재 GitLab을 통하여 프로젝트를 관리하고 있는데 이를 유지보수하려고 한다. 먼저 새로운 branch를 생성하고 그 안에서 코드를 변경, 각종 테스트, 리뷰를 거쳐 Merge를 해야 한다. 그 후에 다시 build, test, deploy의 과정을 거침으로써 main branch는 항상 완전무결한 상태를 유지시켜야 하는 것이다. 다음 자료는 gitlab에서 이 과정을 도식화한 그림이다.

실질적으로 협업 프로젝트에서는 어떻게 이용할 수 있는지 살펴보도록 하겠다. 먼저 이슈를 생성해준다.
title에 무엇을 하려는지(api를 sdk로 변경, 잘못된 코드 수정 등)를 명시해준다.
description에 자세한 설명을 작성해주고,
Assignee에 작업자를 지정해주고,
지정된 완료 시간이 있다면 due date를 설정해준다.

이슈가 생성되면 create merge request라는 부분이 생성되는데, 이때 내가 작업할 브랜치의 이름이 branch name이고 source는 브랜치를 생성할 기본 브랜치 이름이다. 이렇게 create merge request를 활성화하면 다음과 같이 draft: resolve "(이슈명)"으로 title이 설정된다. 이제 이에 대한 내용을 적어주고 reviewer에 검토자를 적어주면 된다.

마지막으로 merge 하기 전에 새로 생성한 branch의 소스를 자동으로 삭제할거냐는 옵션을 확인해주고 create marge request를 한다.
git switch -c (새로운 브랜치명)를 통해 생성할 작업 브랜치로 변경해준다.
이제 이 브랜치에서 작업을 하다가 git commit - git push를 거쳐 git 서버로 올려준다.

그러면 mark as ready가 활성화되고 이 버튼을 누르면
review changes를 할 수 있게 된다. 이 작업이 모두 끝나면 ready to merge해주면 된다. merge하는 순간 소스 브랜치는 삭제되도록 체크가 되어 있으나 이는 서버의 git만 그렇게 되는 것이고 내 컴퓨터에서는 그렇지 않으니 로컬에서도 삭제하는 과정이 필요하다.
일단 git switch main으로 메인 브런치로 이동한 다음에git pull을 해주면 최신 버전의 git이 main에 pull 된다. yarn run build로 빌드까지 해주면 된다.

마지막으로 로컬에 있는 브랜치를 삭제하려면 git branch --all로 조회해주고
git branch -D (브랜치명)으로 삭제하면 된다. 그래도 저 빨간색 캐쉬는 남게 되는데 이는 git fetch --prune으로 패치해주면서 서버와 동기화되면 사라진다.

0개의 댓글