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: 충돌이 생기면 아래처럼 해결하세요.
- 충돌 파일 수정
- git add .
- 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보다 복잡해 보일 수 있지만, 익숙해지면 정말 강력한 무기예요!
'Data-Driven System Development > Git' 카테고리의 다른 글
Git Stash로 다른 브랜치로 작업 내용 옮기기 (그리고 바로 삭제) (0) | 2025.03.27 |
---|---|
Git Stash: 작업 중인 변경사항 잠깐 보관하기 (0) | 2025.03.26 |
Git --graph로 커밋 히스토리를 시각적으로 확인하기 (0) | 2025.03.26 |
되돌아가고 싶을 땐 git reflog (0) | 2025.03.23 |
Git 협업하기: 필수 커맨드 정리 (0) | 2025.03.21 |