박정준@jungjun · Aug 11, 2026
문제와 해결: GitHub에서 Rebase로 커밋 히스토리 정리하기
어떤 문제가 있었나요?
팀 프로젝트에서 각자 브랜치를 만들어 작업하다 보면 main 브랜치의 변경 사항이 계속 쌓이게 된다. 이때 단순히 merge를 반복하면 Merge Commit이 많이 생겨 커밋 히스토리가 복잡해지고 변경 흐름을 파악하기 어려워지는 문제가 있었다.
무엇을 시도했나요?
작업 브랜치에 최신 main의 내용을 반영할 때 merge 대신 rebase를 사용해보기로 했다.
git fetch origin
git rebase origin/main
Rebase 도중 충돌이 발생하면 파일을 직접 수정한 뒤,
git add .
git rebase --continue
를 사용해 작업을 이어갔다.
어떻게 해결했나요?
Rebase를 사용하면 내 브랜치의 커밋들이 최신 main 커밋 뒤에 다시 적용된다. 그 결과 불필요한 Merge Commit 없이 하나의 직선 형태로 커밋 히스토리를 유지할 수 있었다.
왜 그게 효과가 있었나요?
merge는 두 브랜치의 역사를 그대로 보존하면서 합치지만, rebase는 커밋의 기반을 변경해 히스토리를 다시 구성한다. 덕분에 PR을 확인할 때 어떤 변경이 어떤 순서로 이루어졌는지 더 쉽게 파악할 수 있다.
단, 이미 다른 사람과 공유한 브랜치를 rebase하면 커밋 해시가 변경되어 충돌이 생길 수 있으므로, 개인 작업 브랜치에서 사용하는 것이 안전하다.
댓글
아직 댓글이 없습니다.