이번 포스팅에서는 한 브랜치의 특정 커밋을 다른 브랜치로 옮기고,
원래 브랜치에서는 해당 커밋을 삭제하는 실전 예제를 소개합니다.
fix: 마커가 클러스터에 포함되지 않도록 수정
fix: 추천 검색어 클릭 문제 수정
- 이 두 커밋을
feature/target-branch 브랜치로 옮기고,
feature/source-branch에서는 커밋을 삭제하고 싶습니다.
먼저, 커밋을 옮기고 싶은 브랜치(feature/target-branch)로 이동한 뒤
두 커밋을 순서대로 cherry-pick 합니다.
git checkout feature/target-branch
git cherry-pick e5f6g7h8
git cherry-pick a1b2c3d4
Tip:
충돌이 발생하면, 충돌을 해결한 뒤 git cherry-pick --continue로 진행합니다.
이제 feature/source-branch 브랜치로 이동해서
방금 옮긴 두 커밋을 삭제합니다.
git checkout feature/source-branch
git rebase -i HEAD~2
에디터가 열리면, 삭제할 커밋 앞에 drop 또는 d를 입력합니다.
drop a1b2c3d4 fix: 마커가 클러스터에 포함되지 않도록 수정
drop e5f6g7h8 fix: 추천 검색어 클릭 문제 수정
저장 후 종료하면 커밋이 삭제됩니다.
만약 이미 원격 저장소에 푸시된 브랜치라면,
강제 푸시로 변경 사항을 반영해야 합니다.
git push origin feature/source-branch --force
이렇게 하면
주의:
강제 푸시(--force)는 협업 중인 동료에게 영향을 줄 수 있으니,
반드시 팀원과 소통 후 진행하세요!