본 문서는 Git Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.
Section 17.1: 하나의 브랜치 내의 특정 커밋을 다른 브랜치에 복사하기
git cherry-pick <commit-hash>
명령어는 기존 커밋에서 만들어진 변경사항을 다른 브랜치에 새로운 커밋을 생성하여 적용하는 명령어이다. 이러한 특성을 이용하여 커밋들을 브랜치간에 복사할 수 있다.
아래와 같은 tree 를 가정하여 보자. (출처)
dd2e86 - 946992 - 9143a9 - a6fd86 - 5a6057 [master]
\
76cada - 62ecb3 - b886a0 [feature]
만약 이러한 상황에서, b886a0 를 master 브랜치에 복사를 하고 싶다면, (5a6057 커밋 위로)
다음과 같이 실행할 수 있다
git checkout master
git cherry-pick b886a0
이제 작업이 완료된 tree 는 다음과 같을 것이다:
dd2e86 - 946992 - 9143a9 - a6fd86 - 5a6057 - a66b23 [master]
\
76cada - 62ecb3 - b886a0 [feature]
새로운 커밋 a66b23 은 (변경 내역, 커밋 메시지 등의 차원에서) b886a0 와 동일한 내용을 갖게 될 것이다 (부모 커밋 정보만 다를 것이다). 유의할 점은 cherry-pick
작업이 대상 커밋 (이 경우에는 b886a0) 내의 변경 내역만 가져올 것이며 feature 브랜치의 전체 변경사항을 가져오지는 않는다는 점이다 (이러한 작업이 필요하다면 rebase
혹은 merge
를 이용해야 할 것이다).
[출처] https://books.goalkicker.com/GitBook/ (CC BY-SA)
반응형
'번역 > Git Notes for Professionals' 카테고리의 다른 글
17.3: cherry-pick 작업이 필요할지 확인하기 (0) | 2019.11.28 |
---|---|
17.2: 하나의 브랜치 내의 특정 범위 커밋들을 다른 브랜치에 복사하기 (0) | 2019.11.27 |
17: cherry-pick 하기 (0) | 2019.11.27 |
16.5: 자동 stash (autosquash): rebase 시에 squash 시킬 코드 커밋하기 (0) | 2019.11.26 |
16.4: 자동 squash (autosquash) / 자동 fixup 기능 사용하기 (0) | 2019.11.26 |