본문으로 바로가기

Git : cherry-pick으로 Commit 재정렬하기

category Tools/Git 2019. 4. 28. 09:00

 git cherry-pick {Commit ID} 

cherry-pick이란

cherry-pick은 다른 Branch에 있는 특정 Commit만을 가져와서 현재의 Branch에 반영시키는 기능이다.

언제 cherry-pick을 쓸까

프로젝트를 진행하다보면 이런 경우가 있다. branch를 나눠서 작업하더라도 Commit 이력을 살펴보았을 때,

  • 현재의 Branch의 목적에 맞지 않는 Commit 작업들이 이어지고 있어서 특정 Commit 이후부터 다른 브랜치를 따서 작업을 진행하는게 좋겠다고 생각되는 경우 
  • 불필요한 Commit을 제외하고 핵심적인 Commit만 가져와 Master에 반영해야겠다고 생각되는 경우

(더 많은 사례들이 있겠지만) 위와 같이 기존의 Commit 내용을 가져와서 다른 Branch에 반영해야 하는 경우들이 생긴다. 이럴 때 cherry-pick을 사용한다.

cherry-pick 사용하기

git cherry-pick {Commit ID}

cherry-pick을 사용하여 현재의 Branch로 다른 Branch에 있는 commit(cherry) 들을 따서 가져와보자.

그러기 위해서 commit들을 옮겨올 Branch로 이동한 다음 작업을 시작해야 한다는 점을 잊지 말자.

cherry-pick은 Commit을 가져온다기보다, 가져올 Commit과 같은 Commit을 새로 만들어 현재의 Branch에 덧붙이는 작업이다. 즉, 현재 Branch에 붙는 Commit은 Commit ID가 달라진다는 점을 주의해야 한다.

 

Cherry-pick 사용 시 주의점

cherry-pick은 기존 Commit과 cherry-pick을 통해 가져온 Commit의 내용은 같을지라도 Commit ID가 서로 다르는 점을 주의해야 한다. 개인 프로젝트의 경우에는 큰 상관이 없지만, 문제가 발생하여 프로젝트의 Commit 로그를 뒤져야 할 경우에, 같은 작업 내용임에도 서로 다른 Commit ID를 가지고 있다면 후에 작업하는 개발자가 혼란스러운 경우가 발생한다. 

'Tools > Git' 카테고리의 다른 글

Git: 자주 사용하는 명령어 (branch, stash, clean 등)  (0) 2019.04.27