Post

Git에서 커밋을 다른 브랜치로 옮기고 원래 브랜치에서는 삭제하는 방법

Git에서 커밋을 다른 브랜치로 옮기고 원래 브랜치에서는 삭제하는 방법 이번 포스팅에서는 한 브랜치의 특정 커밋을 다른 브랜치로 옮기고, 원래 브랜치에서는 해당 커밋을 삭제하는 실전 예제를 소개합니다. 시나리오 브랜치에 두 개의 커밋이 있습니다. fix: 마커가 클러스터에 포함되지 않…

2025-06-02·cherry-pickgit

Git에서 커밋을 다른 브랜치로 옮기고 원래 브랜치에서는 삭제하는 방법

이번 포스팅에서는 한 브랜치의 특정 커밋을 다른 브랜치로 옮기고, 원래 브랜치에서는 해당 커밋을 삭제하는 실전 예제를 소개합니다.

시나리오

  • feature/source-branch 브랜치에 두 개의 커밋이 있습니다.

    • a1b2c3d4

fix: 마커가 클러스터에 포함되지 않도록 수정

  • e5f6g7h8

fix: 추천 검색어 클릭 문제 수정

  • 이 두 커밋을 feature/target-branch 브랜치로 옮기고, feature/source-branch에서는 커밋을 삭제하고 싶습니다.

1. 커밋 옮기기 (cherry-pick)

먼저, 커밋을 옮기고 싶은 브랜치(feature/target-branch)로 이동한 뒤 두 커밋을 순서대로 cherry-pick 합니다.

git checkout feature/target-branch
git cherry-pick e5f6g7h8
git cherry-pick a1b2c3d4

Tip: 충돌이 발생하면, 충돌을 해결한 뒤 git cherry-pick --continue로 진행합니다.


2. 원래 브랜치에서 커밋 삭제 (rebase -i)

이제 feature/source-branch 브랜치로 이동해서 방금 옮긴 두 커밋을 삭제합니다.

git checkout feature/source-branch
git rebase -i HEAD~2

에디터가 열리면, 삭제할 커밋 앞에 drop 또는 d를 입력합니다.

drop a1b2c3d4 fix: 마커가 클러스터에 포함되지 않도록 수정
drop e5f6g7h8 fix: 추천 검색어 클릭 문제 수정

저장 후 종료하면 커밋이 삭제됩니다.


3. 원격 저장소에 반영 (강제 푸시)

만약 이미 원격 저장소에 푸시된 브랜치라면, 강제 푸시로 변경 사항을 반영해야 합니다.

git push origin feature/source-branch --force

마무리

이렇게 하면

  • feature/target-branch 브랜치에는 두 커밋이 옮겨지고

  • feature/source-branch 브랜치에서는 해당 커밋이 삭제됩니다.

주의: 강제 푸시(--force)는 협업 중인 동료에게 영향을 줄 수 있으니, 반드시 팀원과 소통 후 진행하세요!