본문 바로가기
WORK

땅꼬마의 git사용기 - 체리픽(cherry-pick)과 머지(merge)의 차이

by 땅꼬마개발자 2023. 2. 24.

땅꼬마 개발자는 SM업무를 하고 있어유 : )

업무를 하다가 왜 우리 시스템은 머지가 아닌 체리픽으로 소스를 관리하는지 궁금해서 차이점을 정리해보려고 한다

 

그 상황속에서 어떻게 사용하고 있는지 아래에서 확인해보자

 

우선 기본 개념은

▶ 체리픽(cherry-pick) - 가져오고 싶은 해당 작업내역(커밋)만 가져온다

▶ 머지(merge) - 브랜치와 브랜치를 병합한다

이렇게 이해하면 된다.

 

아래의 이미지를 보면서 확인해보자

 

<체리픽 예시>

프로젝트는 커밋을 기준으로 형상관리가 된다.

개발에서는 작업1~4까지 되어 있는 상황이다 하지만 작업3만 품질에서 테스트를 진행한다고 한다.

따라서 체리픽을 통해 작업3에 해당되는 내용만 품질에 가져왔다.

개발브랜치의 작업2, 작업4는 품질에 반영이 되지 않는다.

 

<머지 예시 이미지>

품질에서 -> 운영으로 머지(merge)가 되었다.

품질 브랜치가 운영 브랜치로 들어간 형태를 볼 수 있다.

운영의 MERGE1에서 소스코드들은 품질의 소스코드들과 동일하다라고 이해하면 된다.

 

Cherry-pick과 Merge로 나눠진 이유는

프로젝트가 직렬(순차적으로 개발)이냐 병렬(동시에 개발)이냐에 따라서 정해지는 것 같다.

 

작업단위별로 순차적으로 진행되는 프로젝트라면 Merge를 통해 형상을 관리하는게 사고와 충돌을 줄일 수 있고, 병렬로 진행되는 프로젝트라면 Cherry-pick을 통해 관리하는것이 효율적이다.