반응형
이번 포스팅에서는 [브랜치와 병합] 파트의 세부 주제인 히스토리를 선형으로 정리하기 (Rebase)에 대하여 상세히 알아보겠습니다.

1. Rebase의 원리
Rebase는 직역하면 베이스(Base)를 다시(Re) 설정한다는 의미입니다. 파생된 브랜치의 시작점을 대상 브랜치의 가장 최신 커밋으로 재배치하는 작업을 수행합니다. 병합 커밋(Merge Commit)을 남기지 않기 때문에 여러 갈래로 뻗은 복잡한 브랜치 구조를 단일 선형 히스토리로 깔끔하게 정리해 주는 특성이 있습니다.
2. Rebase 수행 방법
Rebase를 수행할 때는 Merge와 반대로 내가 작업 중인 브랜치에 머무른 상태에서 기준이 될 브랜치를 지정합니다.
# 1. 작업 중인 기능 브랜치로 이동
$ git switch feature-login
# 2. main 브랜치의 최신 내용을 나의 베이스로 재설정
$ git rebase main
Rebase 도중에도 동일하게 충돌이 발생할 수 있습니다. 충돌 해결 과정은 Merge와 유사하지만 마무리 명령어가 다릅니다.
# 충돌이 발생한 파일 직접 수정 후 준비 영역에 추가
$ git add 충돌해결파일.js
# commit을 하지 않고, rebase 진행을 이어나감
$ git rebase --continue
# 진행 중인 rebase 과정을 아예 취소하고 돌아가고 싶을 때
$ git rebase --abort
치명적인 주의 사항 (Rebase Golden Rule): 이미 원격 저장소에 Push 되어 다른 팀원들과 공유되고 있는 커밋에 대해서는 절대로 Rebase를 수행해서는 안 됩니다. Rebase는 커밋의 해시(ID)를 변경하므로, 원격 저장소의 히스토리와 충돌을 일으켜 팀원 전체의 환경을 망가뜨릴 수 있습니다. 오직 본인 로컬 컴퓨터에서만 작업한 커밋을 정리할 때 사용해야 합니다.
지금까지 히스토리를 선형으로 정리하기 (Rebase)의 개념과 구체적인 활용 방안에 대해 살펴보았습니다. 이어지는 다음 포스팅에서 관련 심화 주제를 지속적으로 다루어보겠습니다.
반응형
'CI.CD > GIT' 카테고리의 다른 글
| [GIT] 안전하고 깔끔한 브랜치 관리 전략 (0) | 2026.07.14 |
|---|---|
| [GIT] Merge와 Rebase의 차이 및 선택 기준 (0) | 2026.07.14 |
| [GIT] 충돌(Conflict) 발생 원인과 해결 가이드 (0) | 2026.07.14 |
| [GIT] 작업 내용 합치기 (Merge) (0) | 2026.07.13 |
| [GIT] 브랜치 만들기 (Branch) (0) | 2026.07.13 |