Will find a way
cherry-pick : 특정 커밋을 골라서 따오고 싶어! 본문
들어가기 전
깃을 쓰면서 원하지 경우를 마주하는 때가 종종 있다. 브랜치를 잘못 생성하거나 생성을 못하거나. (종종 나의 실수에 의해서 일어나는 경우가 많다.) 그래도 어떻게든 내가 해결해야하는 것이라 찾아보던 중 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 |