(git) git cherry-pick 단일 커밋 이식

✨ 개요

서비스 운영 중에 “운영에만 급하게 반영해야 하는 버그 수정”이 생기면, 전체 브랜치를 다 merge 하기는 부담스럽고 딱 그 커밋 하나만 가져오고 싶을 때가 있습니다. 이 때 사용하는 Git 기능이 바로 git cherry-pick입니다.

이 글에서는 단일 커밋을 다른 브랜치로 이식해서 핫픽스/릴리즈 브랜치를 관리하는 방법을 정리합니다.


1. 요약


2. 왜 cherry-pick이 필요한가? (핫픽스/릴리즈 시나리오)


3. git cherry-pick이란? (개념 정리)

git cherry-pick은 특정 커밋의 변경 내용을 현재 체크아웃된 브랜치 위에 “새로운 커밋으로 다시 적용”하는 명령어입니다.


4. cherry-pick 준비: 커밋 ID 찾기

먼저 이식하고 싶은 커밋의 해시를 찾아야 합니다.

# 예: develop 브랜치에서 버그 픽스 커밋 확인
git checkout develop
git log --oneline

로그
a1b2c3d4 [bugfix] 로그인 실패 시 NPE 해결
9e8f7a6b [feature] 프로필 편집 화면 추가

5. 단일 커밋 cherry-pick으로 핫픽스/릴리즈 반영하기

이제 해당 커밋을 릴리즈 브랜치로 이식해 보겠습니다.

# 릴리즈 브랜치로 이동
git checkout release/1.2.0

# cherry-pick 실행
git cherry-pick a1b2c3d4

# 원격에 푸시
git push origin release/1.2.0

6. 여러 개 커밋 한 번에 cherry-pick 하기

A (이전 커밋)
B (버그 수정 1)
C (버그 수정 2)
D (버그 수정 3)

git cherry-pick B^..D

git cherry-pick a1b2c3d4 e5f6a7b8 9c0d1e2f

7. cherry-pick 사용 시 주의할 점 & 베스트 프랙티스

7.1 너무 남발하면 히스토리가 꼬인다

7.2 merge 커밋 cherry-pick은 신중하게

7.3 공통 기준 브랜치를 정해두기

팀 내 규칙 예시:

7.4 커밋 메시지에 출처 남기기

나중에 추적하기 쉽게 커밋 메시지에 출처를 남기는 것도 좋습니다.

예:


8. 결론



Related Posts