rebase는 사전 의미와 같이 base를 재설정한다는 의미이다.
여기서 말하는 base는 branch의 base를 의미한다. branch는 base 지점을 가지고 있어 base에서부터 코드를 수정한다.
git history를 살펴보면 branch의 base가 어디 있는지 확인할 수 있다.
깃에서 작업을 위해 master에서 새로운 branch를 따서 작업을 할 때, 협업 상황에서는 다른 사람이 master에 commit하는 상황이 발생하게 된다.
그런 경우 현재 내가 작업하고 있는 master는 현재의 master와는 다른 상황이 발생하게 된다. 이 경우 rebase를 통해 이때까지 commit된 상태의 최상단으로 현재 내가 작업하고 있는 master를 옮길수 있다.
merge 와 rebase 의 경우 모두 git의 코드를 합치는 방법이지만 서로 추구하는 방향에 따라서 다르게 사용한다.
Merge는 branch를 통합하는 것이고, Rebase는 branch의 base를 옮긴다는 개념이라고 이해하면 되겠다.
그래서 둘 중에 하나만 쓰는 것이 아니라 두가지가 존재한다.
- Merge만 사용한다.
- Rebase와 Merge를 사용한다.