rebase를(참조) 통하여 다른 브랜치의 전체 commit 내역을 복사해오지 않고 특정 commit 내역만을 가져오고 싶을 경우 cherry-pick을 사용한다
1) 언제 사용
- 토픽이나 패치 브랜치에서 개발된 특정 commit만을 가져오고 싶을 경우
- 즉, 하나의 commit만 rebase 하는 것이다
2) 실습
- cherry-pick을 하기전 상태
[5.26 master브랜치와 별도의 토픽브랜치 ruby_client로 두개의 커밋이 존재]
/////////////////////////////////////////
// ruby_cleint별도 브랜치 만들어진 이후
// master 브랜치 커밋내역
$ git log --pretty=oneline -since="2 hours"
fatal: unrecognized argument: -since=2 hours
[nulpulum:~/git-repositories/pro_git]git log --pretty=oneline --since="2 hours"
514281f305bd001776ca41efebccf8276a6bfd98 modify dowon.js
/////////////////////////////////////////
// ruby_client 브랜치로 이동
$ git checkout ruby_client
Switched to branch 'ruby_client'
$ git log --pretty=oneline --since="2 hours"
0f79ccda8c4086d57a4b9ed53c87ecaf11e52ba5 modify topci.txt
40396ae5ab8a964704e0ab84809bb499f9c996b2 add topic.txt
- check-pick 수행하기
+ 그림에서 e43a6에 해당하는 "40396"에 대해서 master 브랜치에서 check-pick 한다
/////////////////////////////////////////
// master 브랜치로 토픽브랜치의 특정
// commit 내역만을 rebase = cherry-pick
$ git checkout master
Switched to branch 'master'
Your branch is ahead of 'origin/master' by 1 commit.
(use "git push" to publish your local commits)
[nulpulum:~/git-repositories/pro_git]git branch
* master
ruby_client
$ git cherry-pick 40396ae5ab8a964704e0ab84809bb499f9c996b2
[master 4963fef] add topic.txt
1 file changed, 1 insertion(+)
create mode 100644 topic.txt
/////////////////////////////////////////
// ruby_client의 커밋이 master 브랜치로
// 새로운 commit을 제일 앞에 놓았다
$ git log --pretty=oneline --since="2 hours"
4963fef54f1d6760ec4e5ff15c9684e0f5e6ad4e add topic.txt
514281f305bd001776ca41efebccf8276a6bfd98 modify dowon.js
[nulpulum:~/git-repositories/pro_git]git branch
* master
ruby_client
[5.27 e43a6 커밋내역 하나만 master의 제일 앞으로 새로운 commit이 생성]
<참조>
- Pro Git : p127
'Git, GitHub > Git Lec02' 카테고리의 다른 글
[Pro Git] 공개 소규모 팀 운영 (0) | 2013.01.30 |
---|---|
[Pro Git] 비공개 대규모 팀 운영 (0) | 2013.01.28 |
[Pro Git] 비공개 소규모 팀 운영 (0) | 2013.01.28 |
[Pro Git] 커밋 가이드라인 (0) | 2013.01.25 |
[Pro Git] 협업 Workflow (0) | 2013.01.25 |