본문 바로가기
개발도구

Git ] Cherry-pick 기능 사용하기

by eteo 2024. 3. 3.

 

 

Git Cherry-pick

Git cherry-pick은 특정 커밋을 현재 브랜치로 가져오는 데 사용되는 명령어이다. 이 기능은 다른 브랜치의 커밋을 현재 작업 중인 브랜치에 적용하고 싶을 때 유용하다.

 

예를 들어 master 브랜치에서 dev/featureA, dev/featureB 브랜치를 만들어 각 기능을 작업하고 있었는데 dev/featureA에서의 버그 수정이나 특정 기능 개선 작업을 한 것을 dev/featureB 브랜치에도 반영하고 싶을 때 사용할 수 있다.

다만, 이 기능을 유용하게 쓰려면 평소 커밋을 특정 기능이나 수정사항 단위로 잘해놔야한다.

 

 

 

 

1. 특정 커밋 적용하기

git cherry-pick c0a1b2c3

 

2. 여러 커밋 적용하기

git cherry-pick c0a1b2c3 d4e5f6g7 h8i9j0k1

 

3. 범위로 커밋 적용하기

git cherry-pick c0a1b2c3..d4e5f6g7

 

 

 

Fork 툴에서의 사용법

반영할 branch로 checkout 한 뒤 Git graph에서 적용할 커밋을 선택 후 우클릭하여 Cherry-pick을 클릭하면 된다. 

shift를 누른 상태에서 여러 커밋을 선택하고 Cherry-pick하는 것도 가능하다.

 

 
 
 
 

 

Cherry-pick 도중에 충돌이 났다면?

 

 

1. 충돌 확인

 

git status 명령어로 충돌이 난 파일을 확인할 수 있다.

git status

 

 

2. 충돌 해결

 

충돌이 발생한 파일을 열고, Git이 표시한 충돌 부분을 찾는다. 충돌 부분은 <<<<<<<, =======, >>>>>>>로 표시되는데 이 부분 사이에 있는 코드를 살펴보고, 어떤 쪽의 코드를 유지할지 혹은 합칠지 결정한 후 수동으로 수정한다.

 

 

3. 수정사항 추가

 

충돌을 해결한 후에는 git add 명령어를 사용해 수정사항을 스테이징 영역에 추가한다.

git add [해결된 파일명]

 

 

4. cherry-pick 계속하기

 

충돌 해결 후 변경사항을 스테이징 영역에 추가했다면 Cherry-pick 과정을 이어서 계속할 수 있다.

git cherry-pick --continue

 

 

5. cherry-pick 작업 취소하기

git cherry-pick --abort