cherry-pick 이용해 원하는 commit만 pr을 올려보자
반응형

안녕하세요 😉

유유자적한 개발자 유로띠 입니다 😀

 



 

 

이번 포스팅에서는

✅ cherry-pick 이란?

✅ cherry-pick 사용법

에 대해서 알아보겠습니다

 

 

cherry-pick 이란? 🧐


 

✅ cherry-pick의 사전적 의미

A metaphor, from the idea of picking through a bowl of cherries and seeking the best for oneself, or the idea of picking off the cherries for oneself from a cake or dessert.

 

 

'케이크 위에 얹어져 있는 체리만 집어먹는 행위'라는 뜻에서 비유한 것으로 인기 있는 특정 요소만 고른다는 뜻입니다.

 

 

👀 체리픽은 언제 사용할까요?

🟡 BE/FE 에서 기능을 적용하여 진행 상황을 확인하는 협업을 할 때

🟡 버그가 발견되어 가능한 빨리 수정이 필요할 때

🟡 pull request가 병합되지 않고 닫혔을 때

 

 

제가 겪은 상황은 버그의 핫픽스를 해야하는 상황입니다. 😏

 

 

운영에서 버그가 발생되어 긴급하게 수정해야 하는 일이 발생되었습니다.
해당 이슈(: issue123)는 이미 수정하여 develop에 병합된 상황입니다.
보통 배포는 develop ➡️ main으로 병합 후
main을 배포 하고 있지만 이미 develop에는 해당 이슈뿐만 아니라
새로운 기능이 병합되어있습니다.

⚠️ 우리는 다음과 같은 작업이 필요합니다.

🔹 develop에 있는 해당 이슈(: issue123) commit 만 가져와서 main에 넣어야 합니다.
🔹 팀원은 main으로 push 하는 권한이 없습니다.
🔹 git Pull Request를 발행하여 진행해야 합니다.

 

 

cherry-pick 사용법


 

✅ 가져와야 하는 commit number 확인하기

 

git log 명령어를 통해 커밋 정보를 확인합니다.

fix: modify issue 에서 해당 버그를 수정한 커밋이고 misc 는 수정된 버전을 올린 커밋입니다.

$ git log --oneline

2a6f3fa misc: package version bump up
4fd4972 fix: modify issue

 

✅ cherry-pick 해야 하는 branch checkout

$ git checkout main

 

new branch 생성

$ git checkout -b hotfix/issue123

 

cherry-pick 진행

$ git cherry-pick 4fd4972
[hotfix/issue123 9ca941d] fix: modify issue
 Date: Wed Dec 22 18:08:25 2021 +0900
 1 file changed, 4 insertions(+)

$ git cherry-pick 2a6f3fa
[hotfix/issue123 07f187b] misc: package version bump up
 Date: Thu Dec 23 18:51:42 2021 +0900
 1 file changed, 6 insertions(+), 6 deletions(-)

물론 커밋 메시지를 넣어 한번에도 가능합니다.

$ git cherry-pick 4fd4972 2a6f3fa

 

 

 

git push를 진행

$ git push origin hotfix/issue123

 

✅ gitHub에서 pull request 만들기

git pull requests에서 pr의 타켓을 main으로 지정하여 생성합니다.

 

 

 

참고

https://en.wiktionary.org/wiki/cherry-pick

반응형