Git 리베이스는 일련의 커밋 변경을 다른 시작점 위에 다시 적용해 이력을 재구성하는 작업이다.
원리
새 기준 커밋 위에서 변경을 순서대로 재현한다. 대화형 방식은 커밋의 순서를 정리하거나 여러 커밋을 합치는 데에도 사용할 수 있다.
Git 작업 흐름 |
|---|
Git · Git 스테이징 영역 · Git 커밋 · Git 브랜치 · Git 병합 |
Git 리베이스 · Git stash · Git 태그 · Git revert · Git bisect |
예시
main이 진전된 동안 개발한 기능 브랜치를 최신 main 위로 옮겨 일직선에 가까운 이력으로 정리할 수 있다.
주의할 점
재작성된 커밋은 보통 식별자가 달라진다. 다른 사람이 기반으로 쓰는 공유 이력에 적용하면 조정이 필요하고, 충돌 해결 과정에서 변경을 빠뜨리지 않도록 검토해야 한다.