GitNotes.17-1.md
본 문서는 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)

반응형

+ Recent posts