ice rabbit programming

[Git] Cherry Pick(체리픽)하기 본문

Development/Git

[Git] Cherry Pick(체리픽)하기

판교토끼 2021. 3. 10. 02:54

한 commit의 변경 사항을 가져오고 싶은 경우가 종종 있다. feature/major-a에 적용한 것을 feature/major-b에 적용하기 위해 가져오거나, 아직 머지하지 않은 브랜치에 master 변경 사항을 가져오고 싶은데 불필요한 커밋이 있는 경우 등이다(사실 PR이 널리 사용되는 git 생태계에서 후자같은 경우는 많이 없을 것이고, 전자가 대부분일 것이다).

그럴 때 사용할 수 있는 기능이 cherry pick이다. 단어 그대로 한 커밋만 골라서 가져오는 기능인데, 아주 쉽게 사용할 수 있다.

git cherry-pick {commit-hash} 와 같이 입력하면 적용된다.

git cherry-pick 338cebf

물론 체리픽 과정에도 conflict가 발생할 수 있고, 이는 직접 해결해 주어야 한다.

commit hash는 git log 명령어로 확인하거나, 소스트리와 같은 GUI 프로그램으로 확인할 수 있다. 본인은 CLI 환경을 주로 사용하기 때문에 git log --pretty=format:"%h %s" 명령어로 확인한다. 이 명령어는 로그의 포맷을 지정해주는 명령어다.

git log

log를 full로 확인할 수도 있다. git log --pretty=online을 사용하면 아래와 같이 나온다.

소스트리로 확인할 수도 있다.

옵션 등 더 자세히 알고 싶은 분은 git docs의 설명을 참고하면 좋을 듯하다.