Data-Driven System Development/Git

Git Rebase 완벽 가이드: 병합보다 깔끔한 히스토리 정리법

Data Jun 2025. 3. 26. 09:49

Git을 조금 써본 개발자라면 merge와 rebase라는 두 가지 병합 방식에 대해 들어봤을 거예요. 둘 다 브랜치를 통합하는 방법이지만, 커밋 히스토리의 결과는 완전히 다릅니다.

이번 포스팅에서는 git rebase가 무엇인지, 언제 어떻게 써야 하는지를 쉽게 설명해드릴게요.

 

Rebase란?

rebase는 한 브랜치의 커밋들을 다른 브랜치의 최신 커밋 위로 다시 쌓는 것입니다.

쉽게 말하면:

“내가 작업한 커밋들을, 마치 최근 브랜치에서 막 시작한 것처럼 다시 재배열한다!”

 

 

예시로 이해하는 Rebase

상황:

main 브랜치와 feature 브랜치가 아래처럼 나뉘어 있다고 해볼게요.

A---B---C  (main)
         \
          D---E  (feature)

여기서 feature 브랜치를 main 브랜치 위로 rebase 해보겠습니다.

git checkout feature
git rebase main

결과:

A---B---C---D'---E'  (feature)

 

  • D와 E가 새로운 커밋(D', E')으로 재작성되었고
  • 마치 main 브랜치 위에서 작업한 것처럼 히스토리가 정리됩니다

 

Rebase vs Merge

 

 

👨‍💻 실습: Rebase로 최신 브랜치 반영하기

main 브랜치에서 최신 작업이 진행되었고, 내 feature/login 브랜치를 최신 상태로 맞추고 싶을 때:

git checkout feature/login
git rebase main

Tip: 충돌이 생기면 아래처럼 해결하세요.

  1. 충돌 파일 수정
  2. git add .
  3. git rebase --continue

 

깔끔한 커밋 정리: git rebase -i

git rebase는 커밋 정리할 때도 강력합니다!

git rebase -i HEAD~3

 

  • 최근 3개의 커밋을 수정, 삭제, 병합, 재정렬할 수 있는 편집창이 뜹니다.
  • pick → squash로 바꾸면 커밋 합치기 가능

Rebase 주의사항

  • 이미 push한 커밋에 대해 rebase는 신중하게!
    → 커밋 ID가 바뀌므로 협업 중에는 merge가 더 안전합니다.
  • 혼자 작업 중인 브랜치에서는 적극적으로 사용해도 좋아요.

 

마무리

git rebase는 Git을 좀 더 깔끔하고 프로페셔널하게 쓰고 싶을 때 꼭 익혀야 할 기능입니다.
merge보다 복잡해 보일 수 있지만, 익숙해지면 정말 강력한 무기예요!