git cherry-pick

inshining·2023년 4월 15일
0

문제 상황

만약 다른 브랜치에서 쓰인 코드를 현재 브랜치에서도 쓰고 싶다면 2가지 방법이 있다.
1. 원하는 소스 코드가 있는 브랜치에 가서 복사를 해서 붙여넣기를 통해서 현재 브랜치에 삽입힌다.

이 방법은 상당히 ‘무식’한 방법이다. 이런 방법이 자주 쓰인다면 브랜치 관리가 의미없을 정도로 브랜치 간 꼬인 현상이 나타날 것이다. 원하는 코드가 커밋 단위로 쪼개져서 작성되어 있다면 우아하게 해결할 수 있다. 바로 Cherry-pick 을 사용할 수 있다. 즉,

  1. 체리 픽을 사용해서 해결한다.

정의

git cherry-pick은 Git 버전 관리 시스템에서 특정 커밋을 다른 브랜치로 선택적으로 가져오는 명령어이다. 다른 브랜치에서 하나 이상의 커밋을 선택하여 현재 브랜치로 가져올 수 있다. 주로 다른 브랜치에서 필요한 변경사항만을 선택적으로 가져오고 싶을 때 사용한다.

사용 방법

git cherry-pick 명령어는 다음과 같은 형식으로 사용된다:

phpCopy code
git cherry-pick <commit-hash>

여기서 <commit-hash>는 가져올 커밋의 해시 값이나 브랜치 이름이다.

git cherry-pick은 선택한 커밋을 현재 브랜치에 적용하고, 새로운 커밋을 생성한다. 이 새로운 커밋은 원본 커밋의 변경사항만을 가지고 있다. 따라서 원본 커밋의 변경사항을 선택적으로 가져올 수 있다.

git cherry-pick은 다양한 옵션을 제공하여 더 정교한 커밋 선택을 가능하게 하다. 예를 들어, 여러 개의 커밋을 한 번에 cherry-pick할 수 있고, 충돌이 발생한 경우 충돌을 해결한 후 cherry-pick을 계속 진행할 수 있다.

사용 예시


(출처: https://www.git-tower.com/learn/git/faq/cherry-pick)

develop 브랜치는 c1에서 분기하여서 c2, c4 커밋을 한 상태이다. 이 때, master 브랜치에서 c3까지 커밋하였고, develop 브랜치의 c2 커밋을 그대로 가져고자 한다.

git switch master
git cherry-pick C2 

체리 픽을 사용하여서 C2 커밋을 가져 올 수 있다.

주의점

git cherry-pick은 원본 커밋의 복사본을 생성하기 때문에 원본 커밋과 다른 커밋 히스토리가 생성될 위험에 조심해야한다. 따라서 git cherry-pick을 사용할 때에는 주의하여 사용하고, 원본 커밋의 이력을 유지하기 위해 적절한 접근 방법을 선택해야 한다.

profile
가능한 최선을 다하고 싶다

0개의 댓글