git merge
처럼 branch
를 합치는 방법중 하나이다.
Commit history를 깔끔하게 관리할 수 있다.
rebase 뜻 그대로, '조상이 되는 branch
를 재지정한다'라고 이해하면 훨씬 편하다.(원리는 아래
그림으로 설명)
위 그림은, 부모 branch인 C2
로부터 파생된 C3(master)
, C4(experiment)
를 병합하는 과정이다.
git merge
명령어를 통해 3-way-merge
로 새로운 커밋을 생성한다.
git log
통해 Commit history를 확인하면, C3
, C4
의 모든 커밋 내역이 모두 확인된다.
-
branch를 병합한다는 점에서만 merge와 동일하다.
rebase의 경우 C4
이후로 파생될 branch들을 모두 하나의 commit으로 합친 후, 부모 branch를 C3
로 재지정한다.
즉, 최종적으로는 최신화된 C3 (master)
를 기준으로 단 하나의 commit만을 남기게 된다.
git rebase (branch name)
: branch name
기준으로 rebase 실행 명령어 (일반적으로 - master를 기준으로 진행)
git rebase -i (브랜치명)
: 사용자가 rebase를 진행하면서 commit 메시지를 직접 수정 (git rebase -h
를 통해 -i
이외 다른 명령어들을 추가로 확인할 수 있다.)
git rebase --abort
: rebase 진행 중단 (rebase가 완료된 이후에도 적용 가능)
git rebase --continue
: conflict, 혹은 다른 이유로 인해 중단된 rebase를 재개
역시 git master 용민님...👍