본문 바로가기
🛠️DevTools/Git

[Git] 특정 커밋 Merge 하기 (cherry-pick)

by inbeom 2025. 1. 20.
728x90
반응형
영어 표현에서 체리 피킹(cherry-picking)은 “체리 농장에서 맛있는 체리만 골라 딴다”는 뜻으로, 필요한 것만
선별적으로 취한다는 뜻이다

https://acompiler.com/git-cherry-pick/

 


Git에서 여러 커밋 내역 중 특정 커밋만 골라서 다른 브랜치로 Merge(병합)하는 작업을 cherry-pick이라고 한다.

즉, cheery-pick을 사용하면 해당 브랜치의 전체 히스토리가 아니라 필요한 특정 커밋만 골라서 Merge 할 수 있기 때문에 여러 브랜치(버전)를 관리하는 현업에서 브랜치 관리에 유용하게 사용할 수 있다.

 

Cherry-pick 사용 방법

소스 브랜치 : 커밋(소스)을 가져올 브랜치
타겟 브랜치 : 커밋 내역을 가져와 병합시킬 브랜치

 

1. Git pull 받기

소스 브랜치와 타겟 브랜치 양쪽 다 pull을 받아 최신 상태를 유지한다.

 ( pull을 받지 않고 진행할 시 bad rivision 에러 발생 가능 )

 

2. 소스 브랜치 선택

타겟 브랜치를 checkout 한 상태로 Git 커밋 히스토리에서 소스 브랜치를 선택하여 커밋 내역을 확인한다.

 ( 커밋 히스토리 : VCS -> Git -> Show history )

 

3. Cherry-pick 진행

타겟 브랜치로 머지 할 커밋을 선택하고 우클릭하여 cherry-pick을 선택하면 자동으로 Merge된다.


4. 충돌(Conflicts)

Cherry-pick으로 Merge 중 소스 충돌이 발생할 수 있다. 이 경우 Intellij에서 창을 띄워서 알려주니 충돌이 발생한 부분은 수동으로 마저 Merge 해주면 된다.

 

5. Merge 내용 커밋

Merge된 소스는 로컬 브랜치에 적용되지 때문에 원격(remote)에 반영하려면 타겟 브랜치에서 커밋/푸쉬 해야한다.

 

▶ 여러개의 커밋을 한번에 cherry-pick하고 싶은 경우 터미널 명령어를 사용하면 된다.

# 여러개의 커밋 cherry-pick하기
git cherry-pick <커밋 해시 1> <커밋 해시 2> <커밋 해시 3>
git cherry-pick <커밋 해시 1>^..<커밋 해시 5>

 

본 글은 Intellij 기준으로 작성되었습니다.

 

- 끝 -

728x90
반응형

'🛠️DevTools > Git' 카테고리의 다른 글

[Git] .gitignore 사용법  (0) 2023.08.27
[Git] Git 명령어  (0) 2023.08.27
[Git] Fork. Repository변경사항 업데이트  (0) 2023.08.27
[Git] Git과 Github의 차이  (0) 2023.08.27
[Git] Git이란?  (0) 2023.08.27