merge와 rebase 모두 한 branch의 변경 사항을 다른 branch로 통합하지만 방식이 다릅니다. merge는 merge commit으로 히스토리를 보존하는 반면, rebase는 선형 시퀀스를 만들기 위해 히스토리를 rewrite합니다. 차이와 각각을 언제 사용할지 이해하는 것이 중요합니다.
merge — 히스토리 보존(합침)
main: A───B───C───────M ← M은 MERGE COMMIT(부모가 둘)
\ /
feature: D───E
→ git merge feature: branch들을 합치는 M 생성
✓ 실제 히스토리 보존(branch가 존재했고 언제 merge되었는지 표시)
✗ 히스토리에 merge commit이 있음(merge가 많으면 어수선해 보일 수 있음)
