merge와 비슷한 개념이지만 merge는 각 feature의 모든 commit과 merge commit을 시간순으로 모든 commit이 저장된다.
rebase는 기능별로 commit이 저장이 되고 merge commit은 삭제된다.
결국 branch별 commit은 1개가 된다.
각 기능별 feature가 수정되면 commit을 하고 그 branch가 merge가 된다면 main에 그 commit이 추가된다.
main에 다른 featrue가 merger 되었기 때문에 다른 기능 feature branch에서 다시 pull을 한다면 그 모든 commit이 추가가 된다.
여러 branch가 있는 경우 commit이 너무 많기 때문에 관리하기가 어려워 보인다
각 branch에서 commit을 한다하더라도 기능별로 모아지기 때문에 복잡하지 않고 merge commit을 제거한다.
$ git rebase -i main
rebase한 commit을 한 개의 commit으로 병합한다는 개념이다.
그렇게 된다면 위에 사진에서 commit이 각각 4개, 2개인데 각각 1개로 병합이 된다.
$ git push 해당feature -f
충돌이 발생하였다면
$ git add .
$ git continue
충돌난 commit의 개수 만큼 반복하면 된다.
git commit을 하는 이유는 변경사항이 없기때문에 add만 하고 rebase 진행