cherry-pick은 언제 사용하나요?
답변 포인트
특정 커밋만 가져오는 상황를 기준으로 정의, 장점, 한계, 예시를 함께 설명해보세요.
정답 및 해설
빠른 요약
cherry-pick은 다른 브랜치의 특정 커밋만 현재 브랜치에 적용합니다. 릴리스 브랜치에 버그 수정만 가져올 때 유용하지만 중복 커밋과 충돌 가능성을 고려해야 합니다.
cherry-pick은 다른 브랜치의 특정 커밋만 현재 브랜치에 적용합니다. 릴리스 브랜치에 버그 수정만 가져올 때 유용하지만 중복 커밋과 충돌 가능성을 고려해야 합니다.
핵심 개념
핵심 기준은 특정 커밋만 선택적으로 가져오기입니다.
cherry-pick은 브랜치 전체가 아니라 특정 커밋의 변경분만 새 커밋으로 적용합니다. hotfix를 릴리스 브랜치에 반영하거나 실험 브랜치의 작은 수정만 가져올 때 유용합니다. 단, 원본과 다른 해시의 별도 커밋이 생깁니다.
동작 흐름
- 현재 브랜치의 상태와 변경 범위를 먼저 확인합니다.
- 명령이 히스토리, 브랜치 포인터, 작업 디렉터리 중 무엇을 바꾸는지 구분합니다.
- 공유 브랜치에 영향을 주는 작업인지 확인합니다.
- 실행 후
git status와git log --oneline --graph로 결과를 검증합니다.
실제 예시
git switch release/1.2
git cherry-pick a1b2c3d예시는 핵심 흐름을 단순화한 것입니다. 실무에서는 팀의 배포 방식, 데이터 크기, 장애 영향도, 유지보수 비용까지 함께 고려해야 합니다.
실무에서 주의할 점
- 공유된 히스토리를 재작성하면 동료의 로컬 작업과 충돌할 수 있습니다.
- 충돌 해결은 한쪽 선택이 아니라 양쪽 변경 의도를 통합하는 과정입니다.
- 위험한 작업 전에는 임시 브랜치나 태그로 복구 지점을 남기면 안전합니다.
함께 연결해서 보면 좋은 키워드
Git, cherry-pick, release, hotfix
정리
한 줄로 정리하면, cherry-pick은 다른 브랜치의 특정 커밋만 현재 브랜치에 적용합니다. 릴리스 브랜치에 버그 수정만 가져올 때 유용하지만 중복 커밋과 충돌 가능성을 고려해야 합니다. 개념의 정의뿐 아니라 적용 조건과 실패했을 때의 증상까지 함께 이해하는 것이 중요합니다.