반응형
Git Cherry-pick이란?
git cherry-pick은 특정 커밋 하나 또는 여러 개를 다른 브랜치로 가져오는 Git 명령어입니다. 이는 브랜치 간에 일부 기능이나 수정 사항만을 선택적으로 병합해야 할 때 유용합니다.
예를 들어, 새로운 기능을 개발하던 중 일부 수정 사항만 긴급하게 프로덕션(메인 브랜치)에 반영해야 하는 경우 git cherry-pick을 사용하면 됩니다.
Git Cherry-pick을 사용하는 이유
- 긴급 패치
특정 버그를 수정한 커밋만 메인 브랜치에 반영하고 싶을 때 사용합니다. - 부분 병합
여러 작업 브랜치에서 특정 변경 사항만 가져오고 싶을 때 유용합니다. - 정확한 컨트롤
병합(merge)과 달리 충돌 가능성을 최소화하면서도 원하는 커밋만 선택적으로 가져올 수 있습니다.
Git Cherry-pick 사용 방법
1. 기본 사용법
다음 명령어를 통해 원하는 커밋을 다른 브랜치에 적용할 수 있습니다:
git cherry-pick <커밋 해시>
예시
- 먼저 적용할 커밋의 해시를 찾습니다.출력 예:
- f3a1b2c Fix typo in README e2d4a6f Add new feature X
- git log --oneline
- 원하는 커밋(f3a1b2c)을 현재 체크아웃된 브랜치로 가져옵니다.
- git cherry-pick f3a1b2c
2. 여러 커밋 한 번에 가져오기
여러 커밋을 연속으로 적용하려면 범위를 지정할 수 있습니다.
git cherry-pick <시작 커밋>^..<끝 커밋>
예시
e2d4a6f부터 f3a1b2c까지의 커밋을 가져오려면:
git cherry-pick e2d4a6f^..f3a1b2c
3. 충돌 해결
만약 cherry-pick 과정에서 충돌이 발생하면 Git이 충돌 내용을 표시합니다.
- 충돌 파일을 수정한 후:
git add <파일명>
- 커밋을 완료합니다:
git cherry-pick --continue
- 작업을 중단하려면:
git cherry-pick --abort
4. 커밋 수정 없이 가져오기
기본적으로 cherry-pick은 기존 커밋의 메타데이터를 유지합니다. 하지만 -n 옵션을 사용하면 변경 내용만 가져오고 새로운 커밋으로 저장할 수 있습니다:
git cherry-pick -n <커밋 해시>
실제 시나리오
feature/login 브랜치에서 로그인 페이지를 수정한 커밋이 있습니다. 이 커밋만 main 브랜치에 반영해야 하는 경우 아래처럼 진행합니다.
- main 브랜치로 이동:
git checkout main
- 커밋 가져오기:
git cherry-pick <커밋 해시>
- 결과 확인:
git log
반응형
'Programming' 카테고리의 다른 글
C++에서 sort 명령 사용법 (0) | 2024.12.11 |
---|---|
Git Commit 내용을 수정하는 방법 (0) | 2024.12.11 |
Git Branch 이해하기 (0) | 2024.12.10 |
Git에서 삭제되지 않는 원격 브랜치 삭제 방법 (0) | 2024.11.28 |
C++에서 이차원 배열 초기화 및 사용법 (0) | 2024.11.19 |