Will find a way

cherry-pick : 특정 커밋을 골라서 따오고 싶어! 본문

Git

cherry-pick : 특정 커밋을 골라서 따오고 싶어!

Jaka_Park 2025. 5. 7. 13:35

들어가기 전

깃을 쓰면서 원하지 경우를 마주하는 때가 종종 있다. 브랜치를 잘못 생성하거나 생성을 못하거나. (종종 나의 실수에 의해서 일어나는 경우가 많다.) 그래도 어떻게든 내가 해결해야하는 것이라 찾아보던 중 cherry-pick이라는 알게되었고 오늘은 cherry-pick에 대해서 알아보려고 한다.

git cherry-pick 이란?

특정 커밋 (여러개도 가능)을 현재 브랜치로 복사해서 적용하는 명령어다.

(즉, 특정 커밋만 골라서 따오고 싶을 때 사용한다.)

 

 

사용법

git checkout 브랜치이름
git cherry-pick <커밋해시>

- 해당 커밋의 내용이 현재 브랜치에 새 커밋으로 복사된다

- 해시값은 변경된다 (원본과 동일한 커밋은 아님 !!!)

 

예시 시나리오

하나의 상황을 가정해보자.

1) feature-a 브랜치에서 여러 작업을 한 상황

2) 그 중 커밋 하나만 main에 반영을 하고 싶다.

* a1 - 작업 1
* a2 - 로그인 UI 수정 <- 이거만 따오고 싶음
* a3 - 기타 개발

 

해결방법

git checkout main
git cherry-pick a2

-> main 브랜치에 a2 커밋 내용이 그대로 복사된 새 커밋으로 붙는다

 

만약 여러개를 하고 싶다면

git cherry-pick a2 a5 a7

 

연속커밋 두가지 예시

git cherry-pick a2..a6
git cherry-pick a2^..a6

첫번쨰 줄과 두번째 줄을 잘 확인해보자. 비슷해 보이지만 적용범위가 다르다

a2..a6는 a2를 포함하지 않고 a3~a6가 포함된다.

a2^..a6는 a2를 포함한 a2~a6가 포함된다.

'Git' 카테고리의 다른 글

Git Hub 으로 협업하기  (0) 2025.04.30
브랜치와 커밋 분리 (git branch 실수)  (0) 2025.04.12
[Git] git 브랜치  (0) 2024.05.09
[Git] Git 명령어  (0) 2024.05.08