안녕하세요 😉
유유자적한 개발자 유로띠 입니다 😀
이번 포스팅에서는
✅ 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으로 지정하여 생성합니다.
참고
'Programming > Git' 카테고리의 다른 글
github team code review 사용해보기 (0) | 2024.03.15 |
---|---|
matrix Required job도 GitHub Actions에서 skip 하기 (0) | 2024.01.23 |
github profile 꾸미기 (feat. badge, github-readme-stats) (0) | 2021.12.01 |
GitHub에서 GitLab으로 저장소 이전하기 (0) | 2020.05.08 |
Git 개념 가이드 (0) | 2015.01.02 |