본문 바로가기
Development Tools/Git

[Git] Git Cherry-Pick으로 다른 브랜치의 커밋 적용하기

by quessr 2024. 7. 9.

Git 프로젝트에서 특정 브랜치에 있는 커밋을 다른 브랜치로 가져와야 할 때 유용한 git cherry-pick 명령어를 사용하는 방법을 알아보겠습니다. 특히, 충돌이 발생했을 때 이를 해결하고 작업을 완료하는 절차를 다룹니다.

1. Cherry-Pick 명령어 사용하기

먼저, cherry-pick 명령어를 사용하여 다른 브랜치의 커밋을 가져옵니다. 여러 개의 커밋을 한 번에 가져오려면 커밋 범위를 지정할 수 있습니다. 예를 들어, hilt 브랜치에서 특정 커밋을 가져오려면 다음과 같이 입력합니다.

git cherry-pick 58f644^..33c243

 

2. 충돌 해결하기

가져온 커밋들 중에 충돌이 발생하면 다음과 같은 메시지가 출력됩니다.

error: could not apply 58f644c... state 변수명을 LoadingState로 변경
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'

 

충돌이 발생한 파일을 열어 충돌을 해결합니다. 예를 들어, PhotoListViewModel.kt 파일에서 충돌이 발생한 경우 해당 파일을 열어 수정합니다.

충돌을 해결한 후, 수정된 파일을 추가합니다.

git add .

or

git add app/src/main/java/com/example/finebyme/ui/photoList/PhotoListViewModel.kt

3. Cherry-Pick 작업 계속하기

충돌이 해결되고 파일을 추가한 후 git cherry-pick --continue 명령어를 실행합니다.

git cherry-pick --continue

4. 커밋 메시지 창 저장 및 닫기

  • VSCode, Sublime Text, 또는 다른 텍스트 에디터:
    • 커밋 메시지를 입력한 후 저장(Ctrl+S 또는 Cmd+S)하고 에디터를 닫습니다(Ctrl+Q 또는 Cmd+Q).
  • Vim:
    • 커밋 메시지를 입력한 후 :wq를 입력하고 Enter를 눌러 저장하고 닫습니다.

5. 작업 완료

이제 cherry-pick 작업이 완료되었습니다. 커밋이 성공적으로 적용되었는지 확인합니다.

요약

  1. git cherry-pick 명령어를 사용하여 다른 브랜치의 커밋을 가져옵니다.
  2. 충돌이 발생하면 해당 파일을 열어 충돌을 해결합니다.
  3. 수정된 파일을 추가하고 git cherry-pick --continue 명령어를 실행합니다.
  4. 커밋 메시지를 확인하고 저장합니다.
  5. 작업이 완료되었는지 확인합니다.

이 과정을 통해 다른 브랜치의 특정 커밋을 현재 브랜치로 가져오고 충돌을 해결할 수 있습니다.