체리 픽

고급 Git

Amanda Crawford-Adamo

Software and Data Engineer

체리 픽이란?

특정 커밋의 변경을 다른 브랜치에 적용합니다

단일 커밋 체리 픽

git cherry-pick <commit-hash>

여러 커밋 체리 픽

git cherry-pick <hash1> <hash2> ..

목적

  • 특정 버그 수정을 브랜치 간 적용
  • 기능을 안정 버전으로 롤백
  • 실험적 변경을 선별 적용
  • 유실된 커밋 복구
고급 Git

체리 픽 예시

main과 feature 그래프. main에는 커밋 2개. feature는 마지막 커밋 이후 main에서 분기.

체리 픽 전 main과 feature 브랜치 로그 두 이미지.

고급 Git

체리 픽 과정

  1. main 브랜치 체크아웃

    git checkout main
    
  2. feature 브랜치의 커밋 def456 변경을 체리 픽합니다.

    git cherry-pick def456
    

main과 feature 그래프. main에는 커밋 3개. feature는 두 번째 커밋 후 분기해 커밋 2개 추가. main의 세 번째 커밋은 feature의 마지막 커밋을 체리 픽한 것.

고급 Git

체리 픽 충돌 해결

충돌 해결 단계
  1. 충돌 파일을 수동으로 수정합니다
  2. 해결된 파일을 스테이징에 추가합니다 git add <resolved-files>
  3. --continue 플래그로 체리 픽을 계속합니다
git cherry-pick --continue
체리 픽 중지

체리 픽을 중단하려면 --abort 플래그를 사용합니다

git cherry-pick --abort
고급 Git

체리 픽 사용 시점

사용 사례

  1. 핫픽스 적용
  2. 개별 기능 테스트

주의사항

  1. 중복 커밋이 생길 수 있음
  2. 남용 시 기록이 복잡해질 수 있음
  3. 큰 변경은 머지나 리베이스 고려
고급 Git

연습해 봅시다!

고급 Git

Preparing Video For Download...