[Git] CherryPick

2023. 4. 13. 02:35공부/Git

Cherry Pick이 뭐지?

좀 더 한국식으로 표현하면, 냉면위에 올라간 겨란만 쏙 빼먹는 행위를 말한다. 조금 와전되긴했지만 내가 필요한 것들만 고르는 행위를 말하는데,

 

개발 용어로써의 체리픽은 다음과 같다.

더보기

체리픽(cherry-pick)은 소스 코드에서 특정 변경 사항만을 선택적으로 가져와서 다른 브랜치에 적용하는 기능을 말합니다. 보통 소스 코드를 버전 관리 시스템(Git, SVN 등)에 저장하면서 여러 개발자들이 동시에 개발을 진행하게 되는데, 이 때 다른 개발자가 작성한 변경 사항을 현재 작업 중인 브랜치로 가져오기 위해 체리픽 기능을 사용합니다.

체리픽은 주로 버그 수정이나 새로운 기능 개발 등의 작업에서 사용됩니다. 예를 들어, 개발자 A가 작업한 변경 사항이 브랜치 X에 반영되어야 하는데, 다른 개발자 B가 작업한 변경 사항도 포함된 브랜치 Y에서만 해당 기능이 동작한다면, 체리픽을 이용해 B가 작업한 변경 사항만 X 브랜치에 가져와서 적용할 수 있습니다.

체리픽을 수행할 때는, 변경 사항이 포함된 커밋의 고유 식별자(해시값)를 사용하여 적용할 커밋을 선택합니다. 이를 통해 특정 변경 사항만을 선택하여 다른 브랜치에 적용할 수 있으며, 선택한 변경 사항만을 포함하는 새로운 커밋을 생성하여 적용합니다.

 

Feature 브랜치에서 개발도중 문제가 생겨서 브랜치 자체를 버려야할 경우 그중에 특정 커밋이 괜찮았을때, 해당 커밋만 가져올 수 있는 것을 체리픽이라고 함

 

사용 예시

Git flow를 보면서 살펴보자

1. develop 브랜치에서 login 브랜치 생성

2. 페이스북 로그인 기능 추가

3. 애플 로그인 기능 추가

4. 구글 로그인 기능 추가

5. 요구사항 변경과 버그 발생으로 login 브랜치는 폐기처리

6. 하지만 login 브랜치의 커밋들중 몇몇 커밋은 재사용 가능하다고 판단

7. newLogin 브랜치 생성

8. 카카오톡 로그인 기능 추가

9. 체리픽 커밋으로 login 브랜치에서 애플로그인 기능과 구글 로그인 기능을 가져옴

10. 컨플릭트 이슈 해결

11. Develop 브랜치로 merge

 

특별히 어려운 기능은 아니라 위 실행 흐름도와 스크린샷을 보면 어떻게 사용되는지 알 수 있다.

 

'공부 > Git' 카테고리의 다른 글

[Git] 이력관리를 위한 Rebase Merging  (0) 2023.04.14
[Git] 2-Way Merge & 3-Way Merge  (0) 2023.04.13
[Git] Stash?  (0) 2023.04.12
[Git] 브랜치 전략  (0) 2023.04.12
[Git] 왜 Git을 사용하는가?  (0) 2023.04.10