본문 바로가기
Q&A2022년 1월 2일1분 읽기

Git rebase와 merge 언제 뭘 써야 하나요?

전
전민규
조회 1094댓글 5

Git에서 rebase와 merge가 뭐가 다른지, 실무에서는 어떤 걸 주로 쓰나요?

댓글 5

김김영삼4년 전

merge는 두 브랜치의 히스토리를 그대로 보존하고 머지 커밋을 만듭니다. rebase는 커밋 히스토리를 한 줄로 정리합니다.

# merge — 히스토리 보존
git checkout main
git merge feature

# rebase — 히스토리 깔끔
git checkout feature
git rebase main
git checkout main
git merge feature # fast-forward

실무 가이드:

  • 개인 브랜치 → rebase로 정리 후 merge
  • 공유 브랜치 → merge만 사용 (rebase하면 다른 사람 히스토리가 꼬임)
  • PR 전 → main을 rebase해서 컨플릭트 미리 해결

가장 흔한 워크플로우: feature에서 작업 → main을 rebase → PR 생성 → squash merge

방방지수(guest)4년 전
rebase 중 충돌이 나면 어떻게 해야 하나요?
방방지수(guest)4년 전
초보에게 정말 유용한 정보네요.
김김영삼4년 전

rebase 중 충돌 해결:

# 충돌 파일 수정 후
git add .
git rebase --continue

# 포기하고 원래대로
git rebase --abort

merge와 달리 rebase는 커밋마다 충돌이 발생할 수 있어서, 커밋이 많으면 충돌 해결이 여러 번 필요합니다. 그래서 커밋을 squash로 합친 후 rebase하는 것도 방법입니다.

황황다은(guest)4년 전
바로 적용해봤는데 잘 되네요!
Ctrl+Enter로 등록