기본 패턴
text
git switch feature/login
git fetch origin
git rebase origin/main설명
merge는 두 브랜치의 흐름을 합치는 방식이고,rebase는 내 브랜치 커밋들을 다른 기준 위에 다시 재배치하는 방식입니다. 결과 히스토리 모양이 달라집니다.- 실무에서
rebase를 자주 쓰는 이유는 작업 브랜치를 최신main위에 깔끔하게 다시 얹어서, merge 전에 충돌을 미리 정리하고 히스토리를 더 직선적으로 유지하기 위해서입니다. - 핵심 감각은 "
rebase는 커밋을 다시 쓰는 작업"이라는 점입니다. 그래서 아직 혼자 작업 중이거나, 팀에서 rebase를 허용한 개인 브랜치에서 특히 잘 맞습니다. - 이미 여러 사람이 공유해 pull한 브랜치를 rebase하고 강제 push하면 다른 사람 히스토리와 충돌할 수 있습니다. 그래서
rebase는 강력하지만 협업 규칙과 함께 써야 합니다. - 좋은 기준은 단순합니다. "공유 전 정리"에는
rebase, "공유 후 안전한 통합"에는merge또는 PR merge를 먼저 떠올리면 실수가 줄어듭니다.
빠른 정리
| 명령 | 의미 |
|---|---|
git rebase origin/main | 내 브랜치를 최신 main 위로 다시 얹기 |
| 장점 | 히스토리 정리, 충돌 조기 해결 |
| 주의점 | 커밋 해시가 바뀜 |
| 잘 맞는 상황 | 개인 작업 브랜치 정리 |
주의할 점
이미 다른 사람이 기반으로 삼은 공유 브랜치를 무심코 rebase하면 협업자가 같은 커밋을 다시 받아야 하는 상황이 생깁니다. rebase는 "내가 소유한 히스토리인가"를 먼저 확인하고 쓰는 편이 안전합니다.
참고 링크
2 sources