Tech Notes
Git Cherry-pick 이란?
miracle-tech
2025. 9. 10. 09:25
728x90
반응형
# 1. dev 에 commit & push (hash 정보를 가져옴 : 7183c68)
# 2. main 브랜치로 전환
git checkout main
# 3. 최신 상태로 업데이트
git pull origin main
# 4. cherry-pick으로 특정 커밋만 적용
git cherry-pick 7183c68
# 4. cherry-pick을 여러개 적용
git cherry-pick df29897 749dfc4
# 4. cherry-pick을 범위로 지정
git cherry-pick df29897..749dfc4
# 5. main에 푸시
git push origin main
다른 브랜치의 특정 커밋만 쏙 빼서 현재 브랜치에 적용하고 싶다면? Cherry-pick이 바로 그 해답입니다.
🍒 Cherry-pick이란?
체리를 하나씩 따듯이, 원하는 커밋만 골라서 현재 브랜치에 적용하는 Git 명령어입니다.
git cherry-pick <커밋해시>
언제 사용할까?
- 핫픽스: 개발 브랜치의 버그 수정을 운영 브랜치에 즉시 적용
- 선별 적용: feature 브랜치의 일부 기능만 먼저 적용
- 실험 결과: 다른 브랜치의 유용한 변경사항만 가져오기
기본 사용법
단일 커밋
git cherry-pick abc1234
여러 커밋
# 연속된 커밋들 (시작 커밋 제외)
git cherry-pick start-commit..end-commit
# 시작 커밋 포함
git cherry-pick start-commit^..end-commit
# 개별 커밋들
git cherry-pick abc1234 def5678 ghi9012
실전 예제
# feature/login 브랜치의 보안 패치만 가져오기
git log --oneline feature/login
# a1b2c3d 보안 취약점 수정 ← 이것만 가져오고 싶음
# e4f5g6h 로그인 UI 개선
# i7j8k9l 소셜 로그인 추가
git cherry-pick a1b2c3d # 보안 패치만 적용!
유용한 옵션들
# 커밋하지 않고 변경사항만 적용
git cherry-pick -n abc1234
# 커밋 메시지 수정
git cherry-pick -e abc1234
# 원본 커밋 정보 추가
git cherry-pick -x abc1234
충돌 해결
# 충돌 발생 시
git status # 충돌 파일 확인
# 파일 수정 후
git add .
git cherry-pick --continue # 계속 진행
# 취소하고 싶다면
git cherry-pick --abort
⚠️ 주의사항
언제 조심해야 할까?
- 같은 커밋을 중복으로 적용하지 않기
- 의존성 있는 커밋들은 함께 가져오기
- 과도한 사용은 히스토리를 복잡하게 만듦
- 공유 브랜치에서는 팀과 충분히 소통하기
되돌리기
# 마지막 cherry-pick 취소
git reset --hard HEAD~1
# 특정 커밋 되돌리기
git revert <커밋해시>
마무리
Cherry-pick은 선택적 적용이 필요할 때 매우 유용한 도구입니다. 하지만 남용하면 프로젝트 히스토리가 복잡해지니, 명확한 목적이 있을 때만 사용하세요!
핵심 포인트:
- 특정 커밋만 골라서 적용하는 명령어
- 핫픽스나 선별 적용에 유용
- 충돌 시 해결 후 --continue로 진행
- 과도한 사용은 금물!
728x90