개발/Git
깃 특정 커밋만 가져오는 방법 (How to use the "cherry-pick" command in Git)
남양주개발자
2022. 10. 3. 20:35
728x90
반응형
실무를 하다보면 특정 브랜치에서 커밋했던 목록들 중 급하게 우선적으로 특정 커밋들만 내보내야 될 경우가 생길 수 있습니다. 이때 Git Cherry-Pick 명령어를 사용하면 손쉽게 특정 커밋을 가져올 수 있습니다.
Cherry Pick?
다른 브랜치의 일부 커밋만 반영하고 싶을 때 사용하는 깃 명령어
TMI
cherry pick이란, 체리 한 바구니에서 제일 좋은 체리만 고르는 것에서 유래한 표현
사용방법
아래와 같이 깃 히스토리가 있다고 가정해봅시다. feat/sentry 브랜치에서 a, b, c 기능들을 추가하고 커밋한 상태인데, 금일 릴리즈에 b 커밋만 우선적으로 올려야 될 경우가 생겼습니다. (굉장히 난감한 상황이쥬?) 이때 cherry-pick 명령어를 활용하면 아-주 깔끔하게 특정 커밋만 똑 떼어서 가져올 수 있습니다.
commit 0184baffc6a5021ebfa5bef44d5b27d6ec79ca73 (HEAD -> feat/sentry)
Author: ruden91 <ruden.91@naver.com>
Date: Mon Oct 3 20:30:54 2022 +0900
feat: add c
commit e9056611263901ba9c4153fced59c7b42421347e
Author: ruden91 <ruden.91@naver.com>
Date: Mon Oct 3 20:30:42 2022 +0900
feat: add b
commit c026370b07a903f663a96b18a520b6ec0d688db6
Author: ruden91 <ruden.91@naver.com>
Date: Mon Oct 3 20:30:28 2022 +0900
feat: add a
현재 릴리즈 배포된 메인 브랜치는 아래와 같습니다.
commit 68bde58706d564f5245e5c504b05761eec179905 (HEAD -> main)
Author: ruden91 <ruden.91@naver.com>
Date: Mon Oct 3 20:22:15 2022 +0900
chore: test
commit 9853e7866aefd2c30d5c66d630e8d6f8eb139e78
Author: ruden91 <ruden.91@naver.com>
Date: Sun Aug 21 15:30:31 2022 +0900
Initial commit from Create Next App
우리가 가져올 커밋 해시값을 복사하고, 특정 브랜치에서 아래 명령어를 사용합니다.
// b 기능 수정사항의 해시값입니다.
// e9056611263901ba9c4153fced59c7b42421347e
git:(feat/b-feature) git cherry-pick e9056611263901ba9c4153fced59c7b42421347e
위 cherry-pick 명령어를 실행하면 아래 결과와 같이 깔끔하게 특정 커밋만 특정 브랜치로 땡겨올 수 있습니다.
commit cea377dc34614fb51891381be8ff499b0187567b (HEAD -> feat/b-feature)
Author: ruden91 <ruden.91@naver.com>
Date: Mon Oct 3 20:30:42 2022 +0900
feat: add b
commit 68bde58706d564f5245e5c504b05761eec179905 (main)
Author: ruden91 <ruden.91@naver.com>
Date: Mon Oct 3 20:22:15 2022 +0900
chore: test
commit 9853e7866aefd2c30d5c66d630e8d6f8eb139e78
Author: ruden91 <ruden.91@naver.com>
Date: Sun Aug 21 15:30:31 2022 +0900
Initial commit from Create Next App
728x90
반응형
그리드형