Git - cherry pick 사용 방법

조성권·2021년 10월 20일
0
post-thumbnail

오늘은 Git에서 사용하는 cherry pick에 대해 알아보도록 하겠다.

cherry-pick

cherry-pick:
다른 branch에 있는 commit을 선택적으로 내 branch에 적용시킬 때, 사용하는 명령어

만약 다음과 같이 branch 두개가 있고 나의 branch가 X라고 가정하자.

나는 branch Y의 3개의 commit 목록(76ae30ef / 13af32cc / a0ee45lc) 중에 1개의 commit(13af32cc)만 내 branch로 가져오고자 한다.

그럴 경우, 우리는 아래와 같이 git 명령어를 사용할 수 있다.

git cherry-pick 13af32cc

만약, 복수개의 commit을 가져오고자 한다면 공백(스페이스바)를 통해 처리하면 된다.

git cherry-pick commit_hash1 commithash2

만약, 특정 commit hash1부터 commit hash3까지 가져오고자 한다면 아래와 같이 처리하면 된다.

git cherry-pick commit_hash1..commit_hash3

위와 같이 진행하면 commit_hash1부터 시작해서 commit_hash2, commit_hash3에 해당하는 커밋 데이터를 내 branch로 가져올 수 있다.

Cherry-pick 충돌

우리는 가끔 merge를 하는 경우, conflict 나는 경우가 있다.
그와 동일한 원리로 cerry-pick을 하는 경우에도 commit 내역 중 무언가가 문제가 되어 conflict 날 수 있다.

그럴 경우 우리는 두 가지 방법을 통해 해결할 수 있다.

1. conflict 코드를 수정한 후, 재진행

  1. conflict 코드를 수정한다.
  2. git add <path>를 통해 수정된 코드 올리기 (commit은 필요없음)
  3. git cherry-pick -continue 명령어 실행
  • git add:
    작업 디렉토리 상의 변경 내용을 staging 영역에 추가하는데 사용
    (git commit을 하기 전, 변경분을 모아놓기 위해 사용)

2. cherry-pick 중단

git cherry-pick -abort

위 명령어를 통해 cherry-pick 중단 및 cherry-pick하기 전 상태로 리턴 후, 작업

profile
천천히, 완벽히 배워나가고자 하는 웹 서비스 엔지니어

0개의 댓글