웹개발 및 최신 테크 소식을 전하는 블로그, 웹이즈프리

HOME > git

Git에서 체리픽을 사용하여 커밋(commit) 하는 방법은?

Last Modified : 2021-10-06 / Created : 2017-04-11
21,204
View Count
Git에서 체리픽(cherrypick)을 수행하는 방법을 알아보도록 합니다. 먼저 체리픽은 무엇이고 언제 왜 사용할까요?




# Git 체리픽(cherry-pick)이란?

만약 커밋 번호를 알고 있다면 원하는 브랜치에 해당하는 커밋 내용만 반영, 업데이트 할 수 있습니다. 이런 목적으로 체리픽을 많이 사용합니다.

예를들어 branchA에서 커밋한 내용 중 커밋 하나만 branchB에 반영하고 싶은 경우가 체리픽 사용에 좋은 예 입니다. 이런 경우 체리픽을 사용하는데 만약 체리픽으로 커밋할 경우 어떻게 해야할까요?

만약 아래와 같은 커밋을 다른 브랜치에 반영한다면?
Commit no. 1gsdec4b2b3ef30623423sf86fc85454gdff29

예를들어 위와 같은 커밋넘버가 존재한다면 아래의 커맨드를 통해 현재의 브랜치에 업데이트 가능합니다.
> git cherry-pick --커밋넘버

이때 커밋넘버는 전체가 아닌 일부만 사용하여도 가능하니 참고하세요.


! 언제 cherry-pick을 사용할까요?

아직 기존의 Pull Request가 머지가 안된 경우 체리픽을 사용하여 현재 브랜치에 반영한 뒤 계속해서 필요한 작업을 이어나갈 수 있습니다. 만약 체리픽을 사용하지 않는다면 complict가 발생되기 때문입니다.



! 체리픽 옵션 알아보기

체리픽은 다음과 같이 옵션값 continue, quit, abort 중 원하는 것을 선택하여 사용할 수 있습니다. 각각의 옵션값은 다음과 같습니다.

--continue
체리픽이 conflict 등으로 실패하는 경우... 계속해서 해결하기 위한 방법
> git cherry-pick --continue

--quit
만약 체리픽이 실패하는 경우 더 진행하지 않고 현재 상태를 빠져나오는 방법
> git cherry-pick --quit

--abort
체리픽 이전 상태로 돌리고 체리픽을 취소하는 방법
> git cherry-pick --abort


!! 만약 잘못된 체리픽을 취소하는 방법은?
체리픽을 수행하였으나 문제가 발생한 경우 다시 원래대로 돌릴 필요가 있을 수 있겠죠. 예를들어 특정 파일에서 컨플릭이 발생하여 일단 원복 시키는 과정이 필요한 경우가 이에 해당합니다. 이 경우 위의 옵션 중 하나인 abort를 사용할 수 있습니다.
> git cherry-pick --abort

abort는 cherry-pick을 수행하기 이 전의 되돌리는 명령어입니다. 우선 이 전 상태로 되돌린 후 원인을 파악 후 다시 체리픽을 수행할 수 있습니다.

Previous

git에서 수정된 파일 이전으로 되돌리기

Previous

Git에서 untracked file이 계속 보이는 경우 제거하는 지우는 방법은?