본문 바로가기
Program Development Tips/Git

[Git] 필요한 커밋만 가져오는 Git Cherry-Pick 사용법

by Maccrey Coding 2024. 9. 3.
반응형

 

프로젝트에서 특정 커밋만 선택적으로 다른 브랜치에 적용하고 싶을 때, Git의 cherry-pick 명령어가 매우 유용합니다.

cherry-pick을 사용하면 원하는 커밋만 선택적으로 가져와 현재 브랜치에 적용할 수 있습니다.

이 글에서는 cherry-pick 명령어의 기본 사용법과 유용한 팁을 소개하겠습니다.

1. git cherry-pick이란?

git cherry-pick은 특정 커밋을 선택하여 현재 브랜치에 적용하는 명령어입니다. 이를 통해 다른 브랜치에서 유용한 커밋만을 선택적으로 현재 브랜치로 가져올 수 있습니다.

주요 특징

  • 선택적 커밋 적용: 필요에 따라 특정 커밋만 현재 브랜치에 적용
  • 브랜치 간의 커밋 이동: 커밋을 브랜치 간에 쉽게 이동
  • 충돌 해결: 커밋을 적용할 때 발생할 수 있는 충돌을 수동으로 해결

2. 기본적인 cherry-pick 사용법

2.1 특정 커밋 가져오기

git cherry-pick 명령어를 사용하여 특정 커밋을 현재 브랜치에 적용할 수 있습니다. 커밋 해시를 명시하여 가져올 커밋을 지정합니다.

예시:

  1. 커밋 해시 찾기: 적용하려는 커밋의 해시를 찾습니다. git log 명령어를 사용하여 커밋 로그를 확인합니다.
git log

 

커밋 해시 예시: a1b2c3d4

 

 

    2. 커밋 가져오기: git cherry-pick 명령어를 사용하여 커밋을 현재 브랜치에 적용합니다.

git cherry-pick a1b2c3d4

 

2.2 여러 커밋 한 번에 가져오기

여러 개의 연속된 커밋을 한 번에 가져오려면 커밋 범위를 지정하여 cherry-pick을 수행합니다.

예시

git cherry-pick a1b2c3d4..e5f6g7h8

위 명령어는 a1b2c3d4부터 e5f6g7h8까지의 모든 커밋을 현재 브랜치에 적용합니다.

2.3 충돌 해결

커밋을 cherry-pick 할 때 충돌이 발생할 수 있습니다. 충돌이 발생하면 Git은 충돌이 난 파일을 표시하며, 수동으로 충돌을 해결해야 합니다.

충돌 해결 절차

  1. 충돌 파일 수정: 충돌이 발생한 파일을 열어 수정합니다.
  2. 수정된 파일 추가: 수정이 완료된 파일을 스테이징합니다.
git add 충돌난-파일

   3. 커밋 완료: 충돌을 해결한 후, cherry-pick을 완료합니다.

git cherry-pick --continue

   4. 충돌 취소: 충돌 해결을 취소하고 원래 상태로 돌아가려면 다음 명령어를 사용합니다.

git cherry-pick --abort

3. cherry-pick 활용 팁

3.1 cherry-pick과 merge의 차이점

  • cherry-pick: 특정 커밋만을 선택적으로 가져와 적용합니다. 커밋을 개별적으로 선택하고, 브랜치 간에 필요한 변경 사항만을 적용할 때 유용합니다.
  • merge: 전체 브랜치를 병합하여 모든 커밋을 통합합니다. 브랜치 전체를 통합할 때 사용됩니다.

3.2 커밋 메시지 수정

cherry-pick을 할 때 기본적으로 원본 커밋 메시지가 사용됩니다. 필요에 따라 커밋 메시지를 수정하려면 -e 옵션을 사용합니다.

예시

git cherry-pick -e a1b2c3d4

3.3 여러 커밋을 순차적으로 적용하기

여러 개의 비연속 커밋을 적용할 때는 각각 cherry-pick 명령어를 사용하거나, 스크립트를 작성하여 자동으로 적용할 수 있습니다.

예시

git cherry-pick a1b2c3d4
git cherry-pick e5f6g7h8

 

git cherry-pick은 필요에 따라 특정 커밋만을 선택적으로 현재 브랜치에 적용할 수 있는 강력한 도구입니다.

이 기능을 사용하면 브랜치 간의 변경 사항을 유연하게 관리하고, 원하는 커밋만을 현재 브랜치에 통합할 수 있습니다.

cherry-pick을 잘 활용하면 Git에서의 작업을 더욱 효율적으로 수행할 수 있습니다.

구독!! 공감과 댓글은 저에게 큰 힘이 됩니다.

Starting Google Play App Distribution! "Tester Share" for Recruiting 20 Testers for a Closed Test.

 

Tester Share [테스터쉐어] - Google Play 앱

Tester Share로 Google Play 앱 등록을 단순화하세요.

play.google.com

 

 

반응형