콘텐츠로 건너뛰기
GitTree

Git 가이드

Git 체리 선택: 커밋을 다른 브랜치에 복사하고 충돌 수정

전체 기능 분기를 병합하지 않고 하나의 버그 수정이 필요합니까? 체리픽 작동 방식을 알아보고, 올바른 대상을 선택하고, 종속 커밋을 처리하고, GitTree에서 결과를 시각적으로 검토하세요.

작성자: Kodmora업데이트됨 5분 읽음

Git Cherry-Pick은 커밋으로 인해 발생한 변경 사항을 현재 브랜치에 적용하며 일반적으로 새 커밋을 기록합니다. 수정 사항을 받아야 하는 브랜치로 전환하고 소스 커밋을 검사한 다음 git cherry-pick <commit>을(를) 실행합니다. 소스 분기는 그대로 유지됩니다. 패치가 충돌하는 경우 파일을 해결하고 계속하거나 작업을 중단하십시오.

feature/checkout에 수정된 결제 버그가 있는데 릴리스 브랜치에는 해당 수정사항만 필요하다고 상상해 보세요. 전체 기능을 병합하면 완료되지 않은 작업이 발생할 수 있습니다. 이 가이드에서는 Git과 macOS, Windows 및 Linux용으로 빌드한 클라이언트인 GitTree를 사용하여 수정 사항만 복사하는 방법을 보여줍니다. 시각적 경로의 추가 값은 변경 사항을 적용하기 전에 대상 분기와 소스 차이점을 확인하는 것입니다.

체리픽(Cherry-Pick), 병합(Merge), 리베이스(Rebase): 작업 선택

목표에 맞게 작업을 일치시키세요.
목표작동효과
가지와 그 상위 항목을 함께 가져옵니다.병합지점 이력 통합
다른 기지에서 개발 라인을 재생리베이스재생된 커밋을 다시 작성합니다.
전체 분기 없이 선택한 변경 사항 가져오기체리픽선택한 패치를 현재 분기에 적용합니다.

Cherry-Pick은 백포트 또는 잘못된 분기에 커밋된 작은 수정 사항에 유용합니다. 모든 작업을 공유해야 하는 두 개의 분기를 반복적으로 병합하는 것에 대한 대체 방법은 좋지 않습니다. 복사된 변경 사항은 추적하기 어려울 수 있습니다. 전체 브랜치 워크플로는 대화형 리베이스 및 커밋 그래프 가이드를 참조하세요.

다른 브랜치에 커밋을 선별하는 방법

깨끗한 작업 트리로 시작하세요. 완료되지 않은 편집 내용을 커밋하거나 숨깁니다. stash 가이드에서 일시 중지 및 재개 워크플로를 다룹니다. 수정 사항이 원격인지 여부를 가져온 다음 소스 기록을 검사합니다. 아래의 분기 이름과 해시는 예입니다. 이를 기존 대상 분기, 소스 분기 및 실제 수정 해시로 바꿉니다.

git status
git fetch origin
git log --oneline origin/feature/checkout
git show abc1234
git switch release/2.x
git status
git cherry-pick -x abc1234
git show --stat HEAD
git status

-x는 공개 백포트를 추적하는 데 도움이 되는 깨끗한 선별을 위해 메시지에 소스 커밋 참조를 추가합니다. 원격 추적 참조 업데이트를 가져옵니다. 체크아웃된 릴리스 브랜치를 자동으로 업데이트하지 않습니다. 대상이 팀에서 기대하는 개정 버전인지 확인하세요. 새로운 커밋을 검토하고 푸시하기 전에 릴리스 브랜치의 테스트를 실행하세요.

선택한 커밋은 상위 커밋 메타데이터와 기타 커밋 메타데이터가 다르기 때문에 일반적으로 다른 해시를 갖습니다. 원본은 소스 브랜치에 남아 있습니다. 수정 사항을 복사해도 잘못된 분기에서 수정 사항이 제거되지는 않습니다. 해당 분기를 정리하는 방법을 결정하는 것은 별도의 기록 결정입니다. 특히 다른 사람이 이미 해당 분기를 사용하는 경우 더욱 그렇습니다.

GitTree에서 시각적으로 선별하는 방법

  1. 대상 지점 열기

    수정이 필요한 지점을 확인하세요. 시작하기 전에 WIP 행을 검토하고 편집 내용을 커밋하거나 숨깁니다.

  2. 소스 커밋 검사

    그래프에서 수정 사항을 찾아 차이점을 읽어보세요. 대상에 포함되지 않은 이전 변경 사항을 가정하는지 확인하세요.

  3. Cherry-Pick 커밋을 선택하세요.

    소스 커밋을 마우스 오른쪽 버튼으로 클릭하고 Cherry-Pick 커밋을 선택합니다. 여러 커밋의 경우 Ctrl 키를 누른 채 클릭하거나 Command 키를 누른 채 클릭하여 행을 선택한 다음 Cherry-Pick 커밋을 사용하세요. 시작하기 전에 종속성과 순서를 확인하세요.

  4. 중지되면 해결하거나 중단하세요.

    충돌 배너를 사용하여 영향을 받는 파일을 엽니다. 결과를 해결하고 준비한 다음 계속하세요. 활성 작업을 중단하려면 중단을 선택합니다.

  5. 새로운 기록을 검토하세요

    수신 브랜치 상단에서 새 커밋을 검사하고, 영향을 받는 동작을 테스트하고, 푸시하기 전에 브랜치를 다시 검토하세요.

그래프에서 커밋이 선택되고 메뉴가 열리고 Cherry-Pick 커밋이 선택되는 것을 확인하세요.
그래프에서 커밋이 선택되고 메뉴가 열리고 Cherry-Pick 커밋이 선택되는 것을 확인하세요.데모 저장소와의 GitTree 인터페이스입니다.

다운로드GitTree를 통해 시각적 그래프와 충돌 편집기를 사용하여 이 워크플로를 따라가세요. Cherry-Pick은 개인 저장소를 포함하여 무료 플랜에 포함되어 있습니다. 현재 공식 앱에 로그인하고 기존 저장소를 열고 이미 가지고 있는 것과 동일한 Git 기록을 사용하세요.

여러 커밋과 범위를 선별적으로 선택

git cherry-pick abc1234 def5678
# A linear range, including the first commit:
git cherry-pick "abc1234^..def5678"

이는 대체 예입니다. 명시적인 목록은 제공된 순서대로 커밋을 선택합니다. 전제 조건 변경 사항을 먼저 적용하십시오. 범위는 그래프에 표시되는 행을 선택하는 대신 개정 세트 규칙을 따릅니다. A..B는 A를 제외합니다. A^..B에는 A에 상위가 있는 경우 단순 선형 수열에 대한 A가 포함됩니다. 초보자 백포트의 경우 병합을 교차하는 범위보다 명시적이고 검토된 목록을 선호합니다.

체리픽 충돌을 해결하고 계속하세요.

Git이 패치를 적용할 수 없으면 일시 중지됩니다. git status을(를) 실행하여 작업 및 충돌 경로를 식별한 다음 원하는 결과를 편집하세요. 마커 예시는 충돌 해결 가이드와 GitTree 3방향 편집기를 사용하세요. 구문적으로 깨끗한 해결에는 여전히 테스트가 필요합니다. 대상은 다른 API를 사용할 수 있습니다.

git status
git diff --name-only --diff-filter=U
# Resolve the file, then check and stage it:
git diff --check
git add -- src/payment.ts
git diff --cached
git cherry-pick --continue

시퀀스는 문제가 있는 커밋마다 한 번씩, 두 번 이상 일시 중지될 수 있습니다. Git에서 선택 항목이 비어 있다고 말하면 변경 사항이 이미 존재하는지 아니면 해결 방법이 제거되었는지 검사하세요. 의도적으로 해당 커밋을 생략하려는 경우에만 git cherry-pick --skip를 사용하세요. 이는 일반적인 충돌 수정이 아닙니다.

Git 체리 선택 중단 vs 종료 vs 건너뛰기

활성 체리픽 명령
명령의미
git cherry-pick --continue해결 및 준비 후 계속
git cherry-pick --abort사전 시퀀스 상태 취소 및 복원
git cherry-pick --skip현재 커밋을 생략하고 시퀀스를 계속합니다.
git cherry-pick --quit현재 파일과 커밋을 그대로 유지하면서 작업 상태를 잊어버립니다.

커밋 병합, 종속성 누락 및 선택 취소

병합 커밋에는 둘 이상의 상위 항목과 관련된 변경 사항을 나타내기 때문에 기본 상위 항목이 필요합니다. git cherry-pick -m 1 <merge>을(를) 고려하기 전에 git show --no-patch --pretty=raw <merge>로 검사하세요. 상위 1은 보편적으로 정확하지 않습니다. GitTree는 상위 항목을 선택하도록 요청합니다. 습관이 아닌 비교하고 싶은 이력으로 선택하세요. 원래의 일반 수정 커밋을 선택하는 것이 추론하기 더 쉬운 경우가 많습니다.

복사된 수정 사항이 잘못 빌드되면 전제 조건을 검사하세요. 도우미, 스키마 변경 또는 구성이 이전 커밋에 있을 수 있습니다. 성공적인 Git 작업은 패치가 적용되었다는 것만 증명합니다. 수신 분기를 테스트합니다. 공유 기록에서 완료된 선택을 취소하려면 원본 소스 해시가 아닌 대상 브랜치에 생성된 새 커밋을 되돌리세요. 게시되지 않은 작업의 경우 분기 기록을 이동하기 전에 Git 실수 실행 취소에서 재설정 및 복구 선택 사항을 검토하세요.

자주 묻는 질문

Cherry-Pick은 커밋을 이동하거나 복사합니까?

일반적으로 새 커밋을 생성하여 현재 분기에 변경 사항을 적용합니다. 소스 커밋을 삭제하거나 소스 브랜치를 이동하지 않습니다.

어느 지점을 먼저 확인해야 할까요?

대상: 변경 사항을 수신해야 하는 지점을 확인하세요. 대상 브랜치를 확인한 후 소스 커밋을 선택하세요.

체리픽 충돌이 발생하는 이유는 무엇입니까?

패치가 다른 컨텍스트에 적용되고 있습니다. 대상에서 동일한 줄을 편집 또는 삭제했거나 필수 변경 사항이 부족했을 수 있습니다.

커밋하지 않고 체리픽을 선택할 수 있나요?

예. git Cherry-pick --no-commit은 일반적인 커밋을 수행하지 않고 선택한 변경 사항을 작업 트리 및 인덱스에 적용합니다. 결과를 직접 검토하고 커밋하세요.

GitTree에서는 체리픽이 무료인가요?

예. 무료 계획에는 개인 저장소에 대한 로컬 Git 작업도 포함됩니다. 현재 공식 빌드에는 로그인이 필요합니다.

출처

다른 제품에 대한 주장은 2026년 10월 28일의 공식 페이지에서 확인되었습니다. 가격과 기능은 변경됩니다. 공급업체 페이지가 진실의 원천입니다.