cherry pick : 선별하다
revert : 되돌리다
cherry pick
은 rebase를(참조) 통하여 다른 브랜치의 전체 commit 내역을 복사해오는 방식이 아닌
특정 commit 내역만을 가져오고 싶을 경우 cherry pick
을 사용한다.
예를 들어 내 프로젝트안에 develop 이라는 브런치에서 commit 로그가 다음과 같이 나열되어있을 경우
1번째 commit. modify : js 수정
2번째 commit. modify : css 수정
3번째 commit. modify : index.php 마크업 수정
4번째 commit. add : style.css, script.js
5번째 commit. modify : index.php 리펙토링
6번째 commit. add : index.php
2번째로 commit한 "css 수정"만 상태를 가지고와 master에 commit 하고 싶을경우 2번째 commit log를 cherry pick
하면 된다.
cherry pick commit. revert "modify : css 수정"
1번째 commit. modify : js 수정
2번째 commit. modify : css 수정
3번째 commit. modify : index.php 마크업 수정
4번째 commit. add : style.css, script.js
5번째 commit. modify : index.php 리펙토링
6번째 commit. add : index.php
즉 cherry pick
은 하나의 commit만 가져온다.
develop 브런치에서 위와같이 여러번 commit을하며 버젼관리를 하다가, 마지막 commit 만 master 에 가져오려할 경우 cherry pick
을 사용한다고 한다.
1. 우선 master 브랜치를 먼서 선택한 후
2. 다음 명령어처럼 cherry pick
을 실행하면 가장 최근 commit 한 내용만 master 브런치에 commit 된다.
git cherry-pick develop
예를 들어 다음과 같은 경우에 사용을 한다.
참고 사이트 : http://mobicon.tistory.com/230
소스트리에서는 cherry pick
할 commit log 위에 마우스 오른쪽 클릭해 메뉴중에 cherry pick
을 하면 간단하게 rebase 할 수 있다.