반응형
Git을 쓰다 보면 merge는 익숙한데,
rebase는 뭔가 무섭고 어렵게 느껴지죠?
하지만 rebase를 제대로 알면
더 깔끔하고 일직선 같은 Git 히스토리를 만들 수 있습니다.
이번 글에서는 rebase의 개념부터 실습 예제,
그리고 merge와 비교한 시각적 흐름도까지 함께 정리해보겠습니다.
✅ 기본 개념 정리: merge vs rebase
항목 | merge | rebase |
히스토리 | 브랜치 흐름을 보존 | 히스토리를 재작성 |
커밋 기록 | 병합 커밋(merge commit) 생성 | 병합 커밋 없이 재배치 |
사용 용도 | 협업 히스토리 보존 | 깔끔한 커밋 라인 유지 |
협업 안정성 | 안정적 | 신중히 사용해야 함 |
1️⃣ 실전 예제 흐름
git checkout feature
git rebase main
위 명령어의 뜻은:
“feature 브랜치의 커밋들을, main 브랜치 기준 위에 다시 쌓겠다”
즉, 마치 feature 브랜치를 처음부터 main에서 파생된 것처럼 만드는 거예요.
→ 기존:
main: A---B---C
\
feature: D---E
→ rebase 후:
main: A---B---C---D'---E'
2️⃣ rebase와 merge 커밋 비교
# merge 방식
git checkout main
git merge feature
→ 병합 커밋이 생기고 브랜치 히스토리가 분기된 채 유지됨
→ 협업 시 누가 뭘 했는지 명확
# rebase 방식
git checkout feature
git rebase main
→ 병합 커밋 없이 히스토리가 정리됨
→ 혼자 작업하거나 푸시 전이라면 깔끔한 히스토리 관리 가능
✅ rebase 시 주의할 점
- 이미 푸시한 커밋을 rebase하면 절대 안 됩니다!
→ 강제 푸시(git push --force)가 필요하고, 협업자 히스토리가 꼬일 수 있어요 - 혼자 작업할 때는 적극 활용 가능
- 협업할 때는 rebase 대신 merge 권장 (또는 PR 머지 시 squash merge)
✅ 인터랙티브 rebase로 커밋 정리까지 가능!
git rebase -i HEAD~4
→ 최근 4개의 커밋을 수정, 삭제, 합치기 등의 작업 가능
예시 화면:
pick f1a2b3d 커밋 메시지 1
pick a4c5d6e 커밋 메시지 2
→ pick을 reword로 바꾸면 커밋 메시지를 수정할 수 있음
✅ 마무리하며
rebase는 익숙해지면 정말 강력한 도구입니다.
히스토리를 깔끔하게 정리하고 싶은 분께 강력 추천!
단, 협업 시에는 항상 조심, 이미 푸시된 커밋에는 사용 주의하세요.
반응형
'Git' 카테고리의 다른 글
Git 실수했을 때 되돌리는 법! reset, revert, stash 차이와 사용법 완전 정리 (0) | 2025.07.13 |
---|---|
Git 협업, 브랜치 전략이 중요하다! Git Flow vs GitHub Flow 쉽게 비교하기 (0) | 2025.07.12 |
Git과 GitHub 연동하기 (커밋과 푸시 실습) (0) | 2025.05.18 |
GitHub 저장소를 Public에서 Private으로 바꾸는 방법 (0) | 2025.05.17 |
GitHub에서 프로젝트 관리하기 – Projects와 Milestones 완전 정복! (0) | 2025.05.12 |