Git&Github
26. [Git] cherry-pick 개념과 기본 사용법
drizzle0925
2021. 9. 1. 09:19
728x90
cherry-pick
그 버전(commit)이 생성될 때에 변화를 가져오는 것을 cherry-pick(체리 픽)이라고 합니다.
merge에서도 commit 아이디를 지정해서 병합하는 것이 가능한데 이것은 그 버전의 스냅샷(snapshot) 전체를 가져오기 때문에 그 버전에 있는 모든 내용을 가져오게 됩니다.
cherry-pick 폴더를 만들고 git 저장소를 초기화합니다.
master 브랜치에 init 파일을 생성합니다.
master브랜치에서 a브랜치를 생성하고 a1, a2 파일을 생성하고 커밋합니다.
git checkout -b a
touch a1.txt; git add a1.txt; git commit -m "a1"
touch a2.txt; git add a2.txt; git commit -m "a2"
master에서 b브랜치를 생성하고 b1, b2, b3 파일을 생성하고 커밋합니다.
a브랜치와 b브랜의 파일은 다음과 같습니다.
log는 다음과 같습니다.
a브랜치에 b2.txt 파일만 가지고 오고 싶은 경우에 cherry-pick이라는 명령어를 사용합니다.
cherry-pick은 변화가 있는 내용만 가지고 오는 기능입니다.
merge를 사용한 경우, b2.txt를 생성한 버전의 스냅샷(snapshot)을 가지고 오므로 b1.txt, b2.txt를 가져오게 됩니다.
cherry-pick을 이용하여 b브랜치에서 b2.txt만 가져오도록 하겠습니다.
수정 사항을 반영할 a브랜치로 변경합니다.
git checkout a
git cherry-pick <commit_id>
cherry-pick 사용 후 파일 목록을 확인하면 b2.txt만 반영된 것을 확인할 수 있습니다.
merge를 사용한 경우 스냅샷에 저장된 모든 내용을 가지고 오게 됩니다.
728x90