영어 표현에서 체리 피킹(cherry-picking)은 “체리 농장에서 맛있는 체리만 골라 딴다”는 뜻으로, 필요한 것만
선별적으로 취한다는 뜻이다
Git에서 여러 커밋 내역 중 특정 커밋만 골라서 다른 브랜치로 Merge(병합)하는 작업을 cherry-pick이라고 한다.
즉, cheery-pick을 사용하면 해당 브랜치의 전체 히스토리가 아니라 필요한 특정 커밋만 골라서 Merge 할 수 있기 때문에 여러 브랜치(버전)를 관리하는 현업에서 브랜치 관리에 유용하게 사용할 수 있다.
Cherry-pick 사용 방법
소스 브랜치 : 커밋(소스)을 가져올 브랜치
타겟 브랜치 : 커밋 내역을 가져와 병합시킬 브랜치
1. Git pull 받기
소스 브랜치와 타겟 브랜치 양쪽 다 pull을 받아 최신 상태를 유지한다.
( pull을 받지 않고 진행할 시 bad rivision 에러 발생 가능 )
2. 소스 브랜치 선택
타겟 브랜치를 checkout 한 상태로 Git 커밋 히스토리에서 소스 브랜치를 선택하여 커밋 내역을 확인한다.
( 커밋 히스토리 : VCS -> Git -> Show history )
3. Cherry-pick 진행
타겟 브랜치로 머지 할 커밋을 선택하고 우클릭하여 cherry-pick을 선택하면 자동으로 Merge된다.
4. 충돌(Conflicts)
Cherry-pick으로 Merge 중 소스 충돌이 발생할 수 있다. 이 경우 Intellij에서 창을 띄워서 알려주니 충돌이 발생한 부분은 수동으로 마저 Merge 해주면 된다.
5. Merge 내용 커밋
Merge된 소스는 로컬 브랜치에 적용되지 때문에 원격(remote)에 반영하려면 타겟 브랜치에서 커밋/푸쉬 해야한다.
▶ 여러개의 커밋을 한번에 cherry-pick하고 싶은 경우 터미널 명령어를 사용하면 된다.
# 여러개의 커밋 cherry-pick하기
git cherry-pick <커밋 해시 1> <커밋 해시 2> <커밋 해시 3>
git cherry-pick <커밋 해시 1>^..<커밋 해시 5>
본 글은 Intellij 기준으로 작성되었습니다.
- 끝 -
'🛠️DevTools > Git' 카테고리의 다른 글
[Git] .gitignore 사용법 (0) | 2023.08.27 |
---|---|
[Git] Git 명령어 (0) | 2023.08.27 |
[Git] Fork. Repository변경사항 업데이트 (0) | 2023.08.27 |
[Git] Git과 Github의 차이 (0) | 2023.08.27 |
[Git] Git이란? (0) | 2023.08.27 |