개발/Git

깃 특정 커밋만 가져오는 방법 (How to use the "cherry-pick" command in Git)

남양주개발자 2022. 10. 3. 20:35
728x90
반응형

깃 특정 커밋만 가져오는 방법 (How to use the "cherry-pick" command in Git)

실무를 하다보면 특정 브랜치에서 커밋했던 목록들 중 급하게 우선적으로 특정 커밋들만 내보내야 될 경우가 생길 수 있습니다. 이때 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
반응형
그리드형