Git

Git 명령어: git cherry-pick (원하는 커밋만 쏙쏙 골라오기)

Damdadira 2025. 6. 19. 10:54
cherry-pick이란?
  • 특정 커밋 하나(혹은 여러 개)를 다른 브랜치로 가져오는 명령어이다.
  • 말 그대로 "체리만 골라 담듯이", 원하는 커밋만 선택해서 가져올 수 있다.

 

 

 

어떤 상황에서 사용하면 유용할까?
  • 팀원이 만든 기능 중 일부가 내가 작업 중인 브랜치에서 필요한 경우
  • 잘못된 브랜치에 커밋한 경우
  • 긴급하게 수정한 부분만 따로 배포 브랜치로 옮겨야 하는 경우
  • 테스트 브랜치에서 유용한 부분만 가져오고 싶은 경우

 

 

 

사용 방법
# 해당 브랜치에서 필요한 커밋 해시 확인(예: a1b23c...)
git log                         

# 내 브랜치로 이동
git cherry-pick 커밋해시         # 하나만 가져오고 싶은 경우
git cherry-pick 해시1^..해시2    # 연속된 여러개의 커밋을 가져오고 싶은 경우
git cherry-pick 해시1 해시2      # 개별 커밋 여러개를 가져오고 싶은 경우

 

 

 

주의할 점
  • 기존 커밋을 그대로 복사하는 것이 아니라 새로운 커밋으로 만들어지기 때문에 같은 내용이라도 커밋 해시는 다르게 만들어진다.
  • 충돌이 날 수 있다.
    • git cherry-pick --continue: 충돌 해결 > git add > git cherry-pick --continue
    • git cherry-pick --skip: 충돌난 커밋은 제외하고 체리피킹
    • git cherry-pick --abort: cherry-pick 실행하기 전으로 이동
  • 너무 자주 사용하면 히스토리가 복잡해 질 수 있기 때문에 필요할 때만 신중하게 사용하는 것이 좋다.

 

 

 

공식 문서 참고
 

Git - git-cherry-pick Documentation

git cherry-pick master Apply the change introduced by the commit at the tip of the master branch and create a new commit with this change. git cherry-pick ..master git cherry-pick ^HEAD master Apply the changes introduced by all commits that are ancestors

git-scm.com