Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Visual Studio 2019 | Visual Studio 2022
Git cherry-pick 은 하나 이상의 원본 분기 커밋에서 대상 분기 로 변경 내용을 복사합니다 . 병합 또는 재베이스와 달리 체리 픽을 사용하면 특정 원본 분기 커밋을 선택할 수 있습니다. 체리를 선택하는 각 원본 분기 커밋에 대해 Git은 대상 분기에 해당 커밋을 만듭니다.
이러한 일반적인 작업을 해결하기 위해 체리 픽을 사용할 수 있습니다.
- 한 분기에서 다른 분기로 특정 기능을 배포합니다.
- 잘못된 분기에서 커밋한 작업을 복사합니다.
- 여러 분기에 버그 수정을 적용합니다.
Git 워크플로에 대한 개요는 Azure Repos Git 자습서를 참조하세요.
커밋 cherry-pick
Azure Repos
Azure Repos는 체리 따기에 대한 제한된 지원을 제공하며 대상 분기에 핫픽스를 적용하기 위한 끌어오기 요청을 만들기 위한 목적으로만 제공됩니다. 자세한 내용은 Azure DevOps 체리 피킹 개선을 참조 하세요.
Azure Repos의 끌어오기 요청 메뉴에 있는 Cherry-pick 옵션은 다음을 수행합니다.
- 끌어오기 요청의 대상 분기에서 새 토픽 분기를 만듭니다.
- 끌어오기 요청의 원본 분기에서 새 토픽 분기로의 모든 변경 내용을 Cherry-picks합니다.
- 새 토픽 분기를 다른 대상 분기에 병합하는 새 끌어오기 요청을 만들라는 메시지가 표시됩니다.
단계별 자습서는 cherry-pick을 사용하여 새 끌어오기 요청 만들기를 참조하세요.
GitHub
GitHub 웹 인터페이스는 체리 따기를 지원하지 않지만 GitHub Desktop 은 체리 따기를 지원합니다. GitHub Desktop에서 체리를 선택하는 방법에 대한 단계별 지침은 커밋 체리 따기를 참조하세요.
Visual Studio 2022는 Git 메뉴, Git 변경 내용 및 솔루션 탐색기 상황에 맞는 메뉴를 사용하여 Git 버전 제어 환경을 제공합니다. Visual Studio 2019 버전 16.8은 팀 탐색기 Git 사용자 인터페이스도 제공합니다. 자세한 내용은 Visual Studio 2019 - 팀 탐색기 탭을 참조하세요.
Git 분기 관리를 선택하여 Git 리포지토리 창을 엽니다. >
Git 리포지토리 창에서 대상 분기를 마우스 오른쪽 단추로 클릭하고 체크 아웃을 선택합니다.
분기 보기에서 원본 분기를 마우스 오른쪽 단추로 클릭하고 기록 보기를 선택하여 커밋 기록 탭을 엽니다.
기록 탭에서 체리 선택하려는 커밋을 마우스 오른쪽 단추로 클릭하고 체리 픽을 선택합니다. Visual Studio는 한 번에 둘 이상의 커밋을 체리 따기를 지원하지 않으므로 체리 선택하려는 각 커밋에 대해 이 단계를 반복해야 합니다.
Visual Studio는 체리 선택 커밋의 변경 내용을 포함하는 새 대상 분기 커밋을 만듭니다. 체리 선택 작업이 성공적으로 완료되지 않으면 Visual Studio에서 사용자에게 알립니다.
Visual Studio 2019 버전 16.8 이상 버전은 팀 탐색기 Git 사용자 인터페이스를 유지하면서 Git 버전 제어 환경을 제공합니다. 팀 탐색기를 사용하려면 메뉴 모음에서 도구>옵션>미리 보기 기능>의 새 Git 사용자 환경을 선택 취소합니다. 두 인터페이스의 Git 기능을 서로 교환하여 사용할 수 있습니다.
팀 탐색기에서 홈 단추를 선택하고 분기를 선택합니다.
분기 보기에서 대상 분기를 마우스 오른쪽 단추로 클릭하고 체크 아웃을 선택합니다.
분기 보기에서 원본 분기를 마우스 오른쪽 단추로 클릭하고 기록 보기를 선택하여 커밋 기록 탭을 엽니다.
기록 탭에서 체리 선택하려는 커밋을 마우스 오른쪽 단추로 클릭하고 체리 픽을 선택합니다. Visual Studio는 한 번에 둘 이상의 커밋을 체리 따기를 지원하지 않으므로 체리 선택하려는 각 커밋에 대해 이 단계를 반복해야 합니다.
Visual Studio는 체리 선택 커밋의 변경 내용을 포함하는 새 대상 분기 커밋을 만듭니다. 체리 선택 작업이 성공적으로 완료되지 않으면 Visual Studio에서 사용자에게 알립니다.
이 git log
명령을 사용하여 원본 분기 커밋을 나열합니다. 플래그는 --oneline
커밋 정보를 축약합니다.
git log --oneline <source branch>
Git은 가장 최근의 커밋을 먼저 나열합니다. 각 커밋 ID 커밋을 고유하게 식별하는 부분 SHA-1 해시입니다. 예시:
e745d06 (HEAD -> add-network-controller) Add a test initialization class
a89f48e (origin/add-network-controller) Add fiber optic transceiver test
31da50b Add network switch test
e74baa2 (origin/main, origin/HEAD, test-fiber-optic-transmitter, main) Add readme content
0c14391 Add readme file
32e3946 Add project files.
체리 선택하려는 커밋의 ID를 기록해 둡니다.
대상 분기가 아직 체크 아웃되지 않은 경우 체크 아웃합니다.
git checkout <target branch>
커밋되지 않은 변경 내용을 커밋, 숨김 또는 취소합니다.
단일 커밋을 선택하려면 다음을 수행합니다.
git cherry-pick <commit ID>
여러 커밋을 선택하려면 커밋 ID 공백으로 구분합니다. 커밋은 입력하는 순서대로 적용됩니다.
git cherry-pick <commit1 ID> <commit2 ID> <commit3 ID>
포괄 커밋 범위를 선택하려면 점 범위 표기법을 사용합니다 ^..
.
git cherry-pick <oldest-commit ID>^..<newest-commit ID>
여러 커밋을 선택하면 기본 cherry-pick 명령이 새 대상 분기 커밋의 해당 시퀀스를 만듭니다. Git에 대상 분기 변경 내용을 스테이징하고 커밋하지 않도록 하려면 플래그를 -n
사용합니다.
git cherry-pick -n <commit1 ID> <commit2 ID>
그런 다음, 체리 선택 작업의 모든 변경 내용을 포함하는 단일 커밋을 수동으로 만들 수 있습니다.
Git은 체리 픽 작업 중에 병합 충돌 있는지 알려 줍니다. 충돌을 해결한 다음 실행git cherry-pick --continue
하거나 실행 git cherry-pick --abort
하여 체리 선택 작업을 실행 취소할 수 있습니다.
다음 단계
관련된 문서