Git에서 rebase와 merge가 뭐가 다른지, 실무에서는 어떤 걸 주로 쓰나요?
merge는 두 브랜치의 히스토리를 그대로 보존하고 머지 커밋을 만듭니다. rebase는 커밋 히스토리를 한 줄로 정리합니다.
# merge — 히스토리 보존git checkout maingit merge feature# rebase — 히스토리 깔끔git checkout featuregit rebase maingit checkout maingit merge feature # fast-forward
실무 가이드:
가장 흔한 워크플로우: feature에서 작업 → main을 rebase → PR 생성 → squash merge
rebase 중 충돌 해결:
# 충돌 파일 수정 후git add .git rebase --continue# 포기하고 원래대로git rebase --abort
merge와 달리 rebase는 커밋마다 충돌이 발생할 수 있어서, 커밋이 많으면 충돌 해결이 여러 번 필요합니다. 그래서 커밋을 squash로 합친 후 rebase하는 것도 방법입니다.
댓글 5
merge는 두 브랜치의 히스토리를 그대로 보존하고 머지 커밋을 만듭니다. rebase는 커밋 히스토리를 한 줄로 정리합니다.
실무 가이드:
가장 흔한 워크플로우: feature에서 작업 → main을 rebase → PR 생성 → squash merge
rebase 중 충돌 해결:
merge와 달리 rebase는 커밋마다 충돌이 발생할 수 있어서, 커밋이 많으면 충돌 해결이 여러 번 필요합니다. 그래서 커밋을 squash로 합친 후 rebase하는 것도 방법입니다.