변경 사항 체리-픽
한 브랜치에서 다른 브랜치로 단일 커밋을 추가하려는 경우 Git 커밋을 체리-픽합니다.
Git에서 체리-픽 은 한 브랜치에서 단일 커밋을 가져와 다른 브랜치의 최신 커밋으로 추가하는 것입니다. 소스 브랜치의 나머지 커밋은 대상에 추가되지 않습니다. 전체 브랜치의 내용이 아닌 단일 커밋의 내용이 필요할 때 커밋을 체리-픽합니다. 예를 들어: 기본 브랜치에서 이전 릴리스 브랜치로 버그 수정을 백포트할 때. 포크에서 업스트림 리포지터리로 변경 사항을 복사할 때. GitLab UI를 사용하여 프로젝트 또는 프로젝트 포크에서 단일 커밋 또는 전체 머지 리퀘스트의 내용을 체리-픽합니다. 이 예시에서 Git 리포지터리에는 두 개의 브랜치 develop 과 main 이 있습니다. 커밋 B 는 main 브랜치의 커밋 E 이후에 develop 브랜치에서 체리-픽됩니다. 커밋 G 는 체리-픽 후에 추가됩니다: 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" 체리-픽된 커밋에 대한 시스템 노트 보기 # GitLab UI 또는 API에서 머지 커밋 을 체리-픽하면 GitLab은 관련 머지 리퀘스트 스레드에 시스템 노트 를 추가합니다. 시스템 노트는 머지 커밋을 체리-픽할 때만 생성됩니다. fast-forward 머지를 사용할 때는 시스템 노트가 생성되지 않습니다. 이는 개별 커밋 체리-픽과 머지 리퀘스트에서 모든 변경 사항 체리-픽 모두에 적용됩니다. GitLab UI 또는 API 외부에서 체리-픽된 커밋도 시스템 노트를 생성하지 않습니다. 시스템 노트가 생성되면 형식은 [cherry-pick-commit] [USER] picked the changes into the branch [BRANCHNAME] with commit [SHA] [DATE] 입니다: 시스템 노트는 새 커밋과 기존 머지 리퀘스트를 상호 연결합니다. 각 배포의 연결된 머지 리퀘스트 목록 에는 체리-픽된 머지 커밋이 포함됩니다. 머지 리퀘스트의 모든 변경 사항 체리-픽 # 머지 리퀘스트가 머지된 후 머지 리퀘스트에서 도입된 모든 변경 사항을 체리-픽할 수 있습니다. 머지 리퀘스트는 업스트림 프로젝트 또는 다운스트림 포크에 있을 수 있습니다. 사전 요구 사항: 머지 리퀘스트를 편집하고 리포지터리에 코드를 추가할 수 있는 프로젝트에 대한 권한이 있어야 합니다
