Git Cherry Pick
git cherry-pick
은 임의의 Git 커밋을 참조로 선택하고 현재 작업 중인 HEAD에 추가할 수 있는 강력한 명령입니다. Cherry pick은 브랜치에서 커밋을 선택하여 다른 브랜치에 적용하는 행위입니다. git cherry pick
은 변경 사항을 실행 취소에 유용할 수 있습니다. 예를 들어, 실수로 잘못된 브랜치에 커밋을 수행했다면 올바른 브랜치로 전환하고 해당 브랜치가 속해야 하는 커밋을 cherry-pick할 수 있습니다.
git cherry pick을 사용하는 경우
git cherry pick
은 유용한 도구지만 항상 모범 사례는 아닙니다. cherry pick은 중복 커밋을 유발할 수 있으며, cherry pick이 작동하는 많은 시나리오에서 대신에 기존 병합을 선호합니다. 그러나 git cherry pick
은 몇 가지 시나리오에서 편리한 도구입니다.
팀 협업
동일한 코드 또는 그와 관련하여 작업하는 개별 팀원이 있는 경우가 팀에 종종 있습니다. 새로운 제품 기능에 백엔드 및 프런트엔드 컴포넌트가 있을 수 있습니다. 두 제품 섹터 간에 일부 공유 코드가 있을 수 있습니다. 백엔드 개발자는 프런트엔드도 활용해야 하는 데이터 구조를 만들 수도 있습니다. 프런트엔드 개발자는 git cherry-pick
을 사용하여 이 가상의 데이터 구조를 만든 커밋을 선택할 수 있습니다. 이 선택을 통해 프런트엔드 개발자는 프로젝트 측면에서 작업을 계속 진행할 수 있습니다.
관련 자료
전체 Git 리포지토리를 이동하는 방법
솔루션 보기
Bitbucket Cloud에서 Git에 대해 알아보기
버그 핫픽스
버그를 발견하면 가능하면 빨리 최종 사용자에게 수정을 제공하는 것이 중요합니다. 예를 들어, 개발자가 새 기능에 대한 작업을 시작했다고 가정해 보겠습니다. 새로운 기능을 개발하는 동안 개발자가 기존 버그를 식별합니다. 개발자는 이 버그를 패치하는 명시적 커밋을 만듭니다. 더 많은 사용자에게 영향을 미치기 전에 버그를 수정할 수 있도록 새로운 패치 커밋을 main
브랜치로 직접 cherry-pick할 수 있습니다.
변경 사항 실행 취소 및 손실된 커밋 복원
feature
브랜치가 오래되어 main
으로 병합되지 않을 수도 있습니다. 풀리퀘스트가 병합되지 않고 종료되는 경우도 있습니다. Git은 이 커밋을 절대 잃지 않으며 git log 및 git reflog와 같은 명령을 통해 찾아서 cherry pick하여 다시 살릴 수 있습니다.
git cherry pick 사용 방법
git cherry-pick
사용 방법을 보여주기 위해 다음과 같은 브랜치 상태의 리포지토리가 있다고 가정하겠습니다.
a - b - c - d Main
\
e - f - g Feature
git cherry pick
사용은 간단하며 다음과 같이 실행할 수 있습니다.
git cherry-pick commitSha
이 예시에서 commit
Sha는 커밋 참조입니다. git log
를 사용하여 커밋 참조를 찾을 수 있습니다. 이 예시에서는 main
에서 커밋 'f'를 사용하고 싶다고 가정하겠습니다. 먼저 main
브랜치에서 작업하고 있는지 확인합니다.
git checkout main
이어서 다음 명령으로 cherry-pick을 실행합니다.
git cherry-pick f
실행하면 Git 기록이 다음과 같이 표시됩니다.
a - b - c - d - f Main
\
e - f - g Feature
f 커밋이 main 브랜치로 선택되었습니다
git cherry pick의 예제
git cherry pick
에 일부 실행 옵션을 전달할 수도 있습니다.
-edit
-edit
옵션을 전달하면 Git에서 cherry pick 작업을 적용하기 전에 커밋 메시지를 표시합니다.
--no-commit
--no-commit
옵션은 cherry pick을 실행하지만 새 커밋을 만드는 대신 대상 커밋의 콘텐츠를 현재 브랜치의 작업 디렉터리로 이동합니다.
--signoff
--signoff
옵션은 cherry-pick 커밋 메시지 끝에 '냐' 서명줄을 추가합니다.
이 유용한 옵션 외에도 git cherry-pick
에서는 다양한 병합 전략 옵션을 사용할 수 있습니다. git merge 전략 설명서에서 옵션에 대해 자세히 알아보세요.
또한 git cherry-pick은 병합 충돌을 해결하기 위한 옵션 입력도 수락하며, 여기에는 --abort --continue
및 --quit
옵션이 포함됩니다. 이 옵션은 git merge 및 git rebase 명령과 관련하여 더 자세히 다룹니다.
요약
Cherry pick은 몇 가지 시나리오에서 매우 유용하게 쓰이는 강력하고 편리한 명령입니다. git merge 또는 git rebase를 대신하여 Cherry pick을 오용해서는 안 됩니다. cherry pick에 대한 커밋을 찾으려면 git log 명령이 필요합니다.
이 문서 공유
다음 토픽
여러분께 도움을 드릴 자료를 추천합니다.
이러한 리소스에 책갈피를 지정하여 DevOps 팀의 유형에 대해 알아보거나 Atlassian에서 DevOps에 대한 지속적인 업데이트를 확인하세요.