개발자를 희망하는 초보의 자기개발 이야기

git merge 후 커밋 이력 합치기 본문

Tools/Git&GitHub

git merge 후 커밋 이력 합치기

클라우드아실 2025. 3. 2. 01:13
반응형

문제의 발단

다른 개인 프로젝트에서 이전에 커밋 이력 합치기를 해봤던 경험으로 작업 브랜치에서 커밋 이력을 합쳐봤다.
그런데 당연히 main도 같이 수정될거라 생각했지만 main은 변하지 않았다. (찾아보니 별도의 해시값으로 관리된다고..)
어차피 비공개 레포라 다시 원상복구 했었다.

그런데 이번에도 vercel 배포 자동화와 관련해 yml 파일과 build.sh 파일 연동을 시도하다가 의미없는 커밋이 10개가량 발생했다.
문제는 이미 merge까지 끝내고 난 후 생각이 났다는거..
이번 케이스도 추후 발생할 수 있을 것 같아 기록을 남긴다.

상황

  • abc 브랜치(가상의 작업 브랜치명)의 10개 커밋을 하나로 합친다.
  • main 브랜치에서도 해당 10개 커밋을 하나로 정리한다.
  • 리모트 저장소(GitHub/Vercel)에서도 변경 사항을 반영한다.

주의

  • 히스토리를 변경하는 작업이라서, 다른 사람이 git pull 했을 경우 충돌이 발생할 수 있다.
  • 혼자 관리하는 저장소라면 괜찮지만, 팀 프로젝트라면 팀원들과 협의하고 진행해야 한다.

해결방법

1. git 커밋 이력 합치기 의 1 ~ 4번을 그대로 진행한다.

2. abc 브랜치도 main을 따라가도록 한다.

git checkout abc
git rebase main
  • abc 브랜치도 main과 동일한 히스토리를 가지게 된다.

3. 강제 푸시

git push origin main --force
git push origin abc --force

참고자료

반응형