Git으로 변경 사항 체리픽
한 브랜치에서 다른 브랜치로 단일 커밋을 추가하고 싶을 때 Git 커밋을 체리픽합니다.
커맨드 라인에서 git cherry-pick 을 사용하면 기존 브랜치의 특정 변경 사항을 현재 브랜치에 복사합니다. 체리픽은 다음과 같은 경우에 유용합니다: 새 기능을 포함하지 않고 이전 릴리스 브랜치에 버그 수정을 백포팅할 때. 병합할 수 없는 브랜치의 작업을 재사용할 때. 실험적인 변경 사항을 포함하지 않고 이전 릴리스에 소규모 기능을 백포팅할 때. 개발 브랜치에 긴급 프로덕션 수정(핫픽스)을 적용할 때. 포크에서 업스트림 저장소로 변경 사항을 복사할 때. GitLab UI에서 체리픽에 대한 자세한 내용은 변경 사항 체리픽 을 참조하세요. 커밋을 체리픽할 때 Git은: 현재 브랜치에 동일한 변경 사항으로 새 커밋을 생성합니다. 원본 커밋 메시지와 작성자 정보를 보존합니다. 새 커밋 SHA를 생성합니다. (원본 커밋은 변경되지 않습니다.) Mermaid 다이어그램 (18줄) 소스 코드 보기 %%{init: { "fontFamily": "GitLab Sans" }}%% gitGraph accTitle: Example of cherry-picking a commit accDescr: Commit B is copied from the develop branch to the main branch while leaving the original branch unchanged. commit id: "A" branch develop commit id:"B" checkout main commit id:"C" checkout develop commit id:"D" checkout main commit id:"E" cherry-pick id:"B" commit id:"G" checkout develop commit id:"H" git cherry-pick 은 동일한 변경 사항이 있지만 서로 다른 보안 해시 알고리즘(SHA)을 가진 중복 커밋을 만들 수 있기 때문에 주의해서 사용하세요. 이로 인해 프로젝트 히스토리가 복잡해질 수 있습니다. 먼저 다음과 같은 대안을 고려하세요: 브랜치의 변경 사항 대부분이 필요하고 브랜치 히스토리가 깨끗하면 전체 브랜치를 현재 브랜치로 병합하세요. 원본 커밋에 새 브랜치에서 필요하지 않은 복잡한 의존성이 있는 경우 이전 커밋을 체리픽하는 대신 새 커밋을 만드세요. 다른 브랜치에 커밋 하나 적용 # 현재 작업 브랜치에 단일 커밋을 체리픽하려면: 체리픽할 커밋의 SHA를 확인합니다. 커밋 히스토리를 확인하거나 git log 명령을 사용하세요. 예를 들어: $ git log commit abc123f Merge: 88888999999 aaaaabbbbbb Author: user@example.com Date: Tue Aug 31 21:19:41 2021 +0000 Fixes a regression we found yesterday 체리픽할 브랜치로 체크아웃합니다: git checkout release git cherry-pick 명령을 사용하여 피처 브랜치에서 release 브랜치로 커밋 abc123f 를 복사합니다. abc12
