1. Git rebase란?
- Rebase는 말 그대로 “기준(base)을 다시 설정한다”는 뜻이다.
- 브랜치가 다른 브랜치로부터 분기된 시점을 새로운 베이스(commit) 위로 옮겨 주는 작업
- 결과적으로 커밋 그래프가 직선에 가깝게 정리돼서,
merge
보다 히스토리가 더 깔끔해보인다.
2. 기본 사용법
# feature 브랜치를 develop 브랜치 위로 재배치
git checkout feature
git rebase develop
feature
브랜치로 이동
develop
브랜치의 최신 커밋 뒤에 feature
의 커밋들을 하나씩 ‘재생(play)’해준다.
- 충돌(conflict)이 나면 수정 후
git add
→ git rebase --continue
- 다 끝나면
feature
브랜치가 develop
최신 커밋 위에 붙어 있게 된다.
3. 인터랙티브 리베이스(interactive rebase)
git rebase -i HEAD~5
- 편집 에디터가 뜨면서 커밋마다
pick
, squash
, edit
같은 명령을 지정할 수 있다.
- squash: 여러 커밋을 하나로 합치기