InfoGrab Docs

변경 사항 체리-픽

요약

Git에서 체리-픽은 한 브랜치에서 단일 커밋을 가져와 다른 브랜치의 최신 커밋으로 추가하는 것입니다. GitLab UI를 사용하여 프로젝트 또는 프로젝트 포크에서 단일 커밋 또는 전체 머지 리퀘스트의 내용을 체리-픽합니다.

Git에서 체리-픽은 한 브랜치에서 단일 커밋을 가져와 다른 브랜치의 최신 커밋으로 추가하는 것입니다. 소스 브랜치의 나머지 커밋은 대상에 추가되지 않습니다. 전체 브랜치의 내용이 아닌 단일 커밋의 내용이 필요할 때 커밋을 체리-픽합니다. 예를 들어:

  • 기본 브랜치에서 이전 릴리스 브랜치로 버그 수정을 백포트할 때.
  • 포크에서 업스트림 리포지터리로 변경 사항을 복사할 때.

GitLab UI를 사용하여 프로젝트 또는 프로젝트 포크에서 단일 커밋 또는 전체 머지 리퀘스트의 내용을 체리-픽합니다.

이 예시에서 Git 리포지터리에는 두 개의 브랜치 developmain이 있습니다. 커밋 Bmain 브랜치의 커밋 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]입니다:

머지 리퀘스트 타임라인의 체리-픽 추적

시스템 노트는 새 커밋과 기존 머지 리퀘스트를 상호 연결합니다. 각 배포의 연결된 머지 리퀘스트 목록에는 체리-픽된 머지 커밋이 포함됩니다.

머지 리퀘스트의 모든 변경 사항 체리-픽#

머지 리퀘스트가 머지된 후 머지 리퀘스트에서 도입된 모든 변경 사항을 체리-픽할 수 있습니다. 머지 리퀘스트는 업스트림 프로젝트 또는 다운스트림 포크에 있을 수 있습니다.

사전 요구 사항:

  • 머지 리퀘스트를 편집하고 리포지터리에 코드를 추가할 수 있는 프로젝트에 대한 권한이 있어야 합니다.

  • 프로젝트는 머지 커밋 방법을 사용해야 하며, 이는 프로젝트의 Settings > Merge requests에서 설정됩니다.

    GitLab 16.9 이상에서 fast-forward 커밋은 스쿼시되거나 머지 리퀘스트에 단일 커밋이 포함된 경우에만 GitLab UI에서 체리-픽할 수 있습니다. 언제든지 개별 커밋을 체리-픽할 수 있습니다.

    [!note] fast-forward 머지 방법을 사용할 때는 시스템 노트가 생성되지 않습니다.

이를 수행하려면:

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.

  2. 왼쪽 사이드바에서 Code > Merge requests를 선택하고 머지 리퀘스트를 찾습니다.

  3. 머지 리퀘스트 보고서 섹션으로 스크롤하여 Merged by 보고서를 찾습니다.

  4. 보고서의 오른쪽 상단에서 Cherry-pick을 선택합니다:

    머지 리퀘스트 체리-픽

  5. 대화 상자에서 체리-픽할 프로젝트와 브랜치를 선택합니다.

  6. 선택 사항. Start a new merge request with these changes를 선택합니다.

  7. Cherry-pick을 선택합니다.

단일 커밋 체리-픽 {#cherry-pick-a-single-commit}#

GitLab 프로젝트의 여러 위치에서 단일 커밋을 체리-픽할 수 있습니다.

머지 커밋을 체리-픽하면 GitLab은 관련 머지 리퀘스트에 시스템 노트를 생성하여 작업을 추적합니다.

프로젝트의 커밋 목록에서#

프로젝트의 모든 커밋 목록에서 커밋을 체리-픽하려면:

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 Code > Commits를 선택합니다.
  3. 체리-픽하려는 커밋의 제목을 선택합니다.
  4. 오른쪽 상단에서 Options > Cherry-pick을 선택합니다.
  5. 체리-픽 대화 상자에서 체리-픽할 프로젝트와 브랜치를 선택합니다.
  6. 선택 사항. Start a new merge request with these changes를 선택합니다.
  7. Cherry-pick을 선택합니다.

리포지터리의 파일 보기에서#

프로젝트의 Git 리포지터리에서 파일을 볼 때 개별 파일에 영향을 미치는 이전 커밋 목록에서 체리-픽할 수 있습니다:

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 Code > Repository를 선택합니다.
  3. 커밋에 의해 변경된 파일로 이동합니다. 마지막 커밋 블록에서 History를 선택합니다.
  4. 체리-픽하려는 커밋의 제목을 선택합니다.
  5. 오른쪽 상단에서 Options > Cherry-pick을 선택합니다.
  6. 체리-픽 대화 상자에서 체리-픽할 프로젝트와 브랜치를 선택합니다.
  7. 선택 사항. Start a new merge request with these changes를 선택합니다.
  8. Cherry-pick을 선택합니다.

다른 부모 커밋 선택#

GitLab UI에서 머지 커밋을 체리-픽할 때 mainline은 항상 첫 번째 부모입니다. 다른 mainline으로 체리-픽하려면 명령줄을 사용합니다. 자세한 내용은 전체 브랜치의 내용 복사를 참조하세요.

관련 주제#

변경 사항 체리-픽

Tier: Free, Premium, Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기
요약

Git에서 체리-픽은 한 브랜치에서 단일 커밋을 가져와 다른 브랜치의 최신 커밋으로 추가하는 것입니다. GitLab UI를 사용하여 프로젝트 또는 프로젝트 포크에서 단일 커밋 또는 전체 머지 리퀘스트의 내용을 체리-픽합니다.

Git에서 체리-픽은 한 브랜치에서 단일 커밋을 가져와 다른 브랜치의 최신 커밋으로 추가하는 것입니다. 소스 브랜치의 나머지 커밋은 대상에 추가되지 않습니다. 전체 브랜치의 내용이 아닌 단일 커밋의 내용이 필요할 때 커밋을 체리-픽합니다. 예를 들어:

  • 기본 브랜치에서 이전 릴리스 브랜치로 버그 수정을 백포트할 때.
  • 포크에서 업스트림 리포지터리로 변경 사항을 복사할 때.

GitLab UI를 사용하여 프로젝트 또는 프로젝트 포크에서 단일 커밋 또는 전체 머지 리퀘스트의 내용을 체리-픽합니다.

이 예시에서 Git 리포지터리에는 두 개의 브랜치 developmain이 있습니다. 커밋 Bmain 브랜치의 커밋 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]입니다:

머지 리퀘스트 타임라인의 체리-픽 추적

시스템 노트는 새 커밋과 기존 머지 리퀘스트를 상호 연결합니다. 각 배포의 연결된 머지 리퀘스트 목록에는 체리-픽된 머지 커밋이 포함됩니다.

머지 리퀘스트의 모든 변경 사항 체리-픽#

머지 리퀘스트가 머지된 후 머지 리퀘스트에서 도입된 모든 변경 사항을 체리-픽할 수 있습니다. 머지 리퀘스트는 업스트림 프로젝트 또는 다운스트림 포크에 있을 수 있습니다.

사전 요구 사항:

  • 머지 리퀘스트를 편집하고 리포지터리에 코드를 추가할 수 있는 프로젝트에 대한 권한이 있어야 합니다.

  • 프로젝트는 머지 커밋 방법을 사용해야 하며, 이는 프로젝트의 Settings > Merge requests에서 설정됩니다.

    GitLab 16.9 이상에서 fast-forward 커밋은 스쿼시되거나 머지 리퀘스트에 단일 커밋이 포함된 경우에만 GitLab UI에서 체리-픽할 수 있습니다. 언제든지 개별 커밋을 체리-픽할 수 있습니다.

    [!note] fast-forward 머지 방법을 사용할 때는 시스템 노트가 생성되지 않습니다.

이를 수행하려면:

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.

  2. 왼쪽 사이드바에서 Code > Merge requests를 선택하고 머지 리퀘스트를 찾습니다.

  3. 머지 리퀘스트 보고서 섹션으로 스크롤하여 Merged by 보고서를 찾습니다.

  4. 보고서의 오른쪽 상단에서 Cherry-pick을 선택합니다:

    머지 리퀘스트 체리-픽

  5. 대화 상자에서 체리-픽할 프로젝트와 브랜치를 선택합니다.

  6. 선택 사항. Start a new merge request with these changes를 선택합니다.

  7. Cherry-pick을 선택합니다.

단일 커밋 체리-픽 {#cherry-pick-a-single-commit}#

GitLab 프로젝트의 여러 위치에서 단일 커밋을 체리-픽할 수 있습니다.

머지 커밋을 체리-픽하면 GitLab은 관련 머지 리퀘스트에 시스템 노트를 생성하여 작업을 추적합니다.

프로젝트의 커밋 목록에서#

프로젝트의 모든 커밋 목록에서 커밋을 체리-픽하려면:

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 Code > Commits를 선택합니다.
  3. 체리-픽하려는 커밋의 제목을 선택합니다.
  4. 오른쪽 상단에서 Options > Cherry-pick을 선택합니다.
  5. 체리-픽 대화 상자에서 체리-픽할 프로젝트와 브랜치를 선택합니다.
  6. 선택 사항. Start a new merge request with these changes를 선택합니다.
  7. Cherry-pick을 선택합니다.

리포지터리의 파일 보기에서#

프로젝트의 Git 리포지터리에서 파일을 볼 때 개별 파일에 영향을 미치는 이전 커밋 목록에서 체리-픽할 수 있습니다:

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 Code > Repository를 선택합니다.
  3. 커밋에 의해 변경된 파일로 이동합니다. 마지막 커밋 블록에서 History를 선택합니다.
  4. 체리-픽하려는 커밋의 제목을 선택합니다.
  5. 오른쪽 상단에서 Options > Cherry-pick을 선택합니다.
  6. 체리-픽 대화 상자에서 체리-픽할 프로젝트와 브랜치를 선택합니다.
  7. 선택 사항. Start a new merge request with these changes를 선택합니다.
  8. Cherry-pick을 선택합니다.

다른 부모 커밋 선택#

GitLab UI에서 머지 커밋을 체리-픽할 때 mainline은 항상 첫 번째 부모입니다. 다른 mainline으로 체리-픽하려면 명령줄을 사용합니다. 자세한 내용은 전체 브랜치의 내용 복사를 참조하세요.

관련 주제#