여러 사람과 작업을 하다가 보면 다른 사람이 작업한 코드가 master에 merge 되는 경우가 발생한다. 이 때 보통 업데이트 된 master을 pull을 한 뒤 현재 진행 중이던 branch에서 업데이트 된 master을 merge 한다.
이럴 경우 merge commit이 남게 되고 이는 commit 메세지를 관리 할 때 지져분해 질 수 있다.
위와 같은 상황에서 merge 대신 rebase을 하게 되면 merge commit이 남지 않을 뿐만 아니라 branch 하나 당 commit 메세지를 한개만 남겨 commit 메세지 관리에 용이하다.
rebase는 말 그대로 base을 바뀌는 것이다. base는 해당 branch가 만들어 진 시점인데, 그 시점을 업데이트 되기 전 master에서 업데이트 된 master로 바꾸는 것이다.
이 때 업데이트 된 master는 작업하고 있던 branch와 conflict가 발생 할 수 있으며, conflict을 모두 해결하면 rebase을 완료 할 수 있다.
또한 squash 기능을 통해 그 동안의 commit 메세지를 하나로 통합 할 수 있다.
git rebase -i master
합칠 commit 선택