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
'Git' 카테고리의 다른 글
| Git 명령어: git commit --amend (마지막 커밋 수정하기) (0) | 2025.07.04 |
|---|---|
| VSCode에서 GitHub 리포지토리 복제하기 (0) | 2025.06.27 |
| VSCode에서 Git 연동하기(Source Control 사용법) (2) | 2025.06.20 |
| Git 브랜치 이름 & 커밋 메시지 규칙 (0) | 2025.06.18 |
| Git 이란? (2) | 2025.06.18 |