Git Cherry-pick
Git cherry-pick은 특정 커밋을 현재 브랜치로 가져오는 데 사용되는 명령어이다. 이 기능은 다른 브랜치의 커밋을 현재 작업 중인 브랜치에 적용하고 싶을 때 유용하다.
예를 들어 master 브랜치에서 dev/featureA, dev/featureB 브랜치를 만들어 각 기능을 작업하고 있었는데 dev/featureA에서의 버그 수정이나 특정 기능 개선 작업을 한 것을 dev/featureB 브랜치에도 반영하고 싶을 때 사용할 수 있다.
다만, 이 기능을 유용하게 쓰려면 평소 커밋을 특정 기능이나 수정사항 단위로 잘해놔야한다.
1. 특정 커밋 적용하기
git cherry-pick c0a1b2c3
2. 여러 커밋 적용하기
git cherry-pick c0a1b2c3 d4e5f6g7 h8i9j0k1
3. 범위로 커밋 적용하기
git cherry-pick c0a1b2c3..d4e5f6g7
Fork 툴에서의 사용법
반영할 branch로 checkout 한 뒤 Git graph에서 적용할 커밋을 선택 후 우클릭하여 Cherry-pick을 클릭하면 된다.
shift를 누른 상태에서 여러 커밋을 선택하고 Cherry-pick하는 것도 가능하다.
Cherry-pick 도중에 충돌이 났다면?
1. 충돌 확인
git status 명령어로 충돌이 난 파일을 확인할 수 있다.
git status
2. 충돌 해결
충돌이 발생한 파일을 열고, Git이 표시한 충돌 부분을 찾는다. 충돌 부분은 <<<<<<<, =======, >>>>>>>로 표시되는데 이 부분 사이에 있는 코드를 살펴보고, 어떤 쪽의 코드를 유지할지 혹은 합칠지 결정한 후 수동으로 수정한다.
3. 수정사항 추가
충돌을 해결한 후에는 git add 명령어를 사용해 수정사항을 스테이징 영역에 추가한다.
git add [해결된 파일명]
4. cherry-pick 계속하기
충돌 해결 후 변경사항을 스테이징 영역에 추가했다면 Cherry-pick 과정을 이어서 계속할 수 있다.
git cherry-pick --continue
5. cherry-pick 작업 취소하기
git cherry-pick --abort
'개발도구' 카테고리의 다른 글
Text to ASCII Art 사이트 (0) | 2024.03.24 |
---|---|
네트워크 성능 및 대역폭 측정 도구 iperf3 (0) | 2024.03.10 |
Git ] stash 기능 사용하기 (0) | 2024.02.29 |
TortoiseGit ] 두 커밋 간 비교 (0) | 2024.01.26 |
Git ] 이전 커밋의 코드 상태 확인하기 (0) | 2024.01.18 |