<rebase란?>
rebase는 말 그대로 베이스(branch)를 재배치한다는 뜻입니다.
merge를 사용하면 히스토리를 봤을 때 뿌리가 여러개로 나뉘게 되고, branch가 매우 많은 상황이라면 히스토리를 깔끔하게 보기가 어렵습니다. 이럴 때 rebase로 베이스를 다시 정의함으로써 새로 커밋 라인을 정리하여 히스토리를 깔끔하게 볼 수 있게 해줍니다.
이렇게 말로만 보면 이해가 어려울 수 있는데요, merge랑 어떻게 다른건지 먼저 비교해보도록 하겠습니다.
<rebase와 merge의 차이점>
이렇게 master 브랜치의 커밋4, testBranch의 커밋3가 있습니다.
커밋3와 커밋4를 merge, rebase를 할 경우 아래와 같은 그림이 됩니다.
merge는 이렇게 새로운 커밋이 생깁니다. 같은 브랜치로 합쳐졌는데, 커밋 히스토리를 볼 때 위와 같이 나뉘어져있어 히스토리를 보기가 어려워집니다.
rebase는 이렇게 하나의 브랜치로 합쳐집니다. 히스토리가 깔끔해졌음을 알 수 있습니다.
<소스트리로 rebase 실습>
테스트를 위해 다음과 같이 rebaseBranch를 만들었고, rebaseBranch와 master 브랜치 둘 다에서 각각 커밋을 해주었습니다. 이 두 커밋을 rebase를 이용해 합치는 작업을 해보겠습니다.
1. rebaseBranch에 체크아웃
2. master브랜치를 우클릭 후, '현재 변경사항을 master에 재배치' 클릭
이렇게 하나의 브랜치로 깔끔하게 커밋되었습니다.
3. master로 체크아웃
4. rebaseBranch와 master병합(fast-forward)
rebase 실습 끝!
'[Git]' 카테고리의 다른 글
[SourceTree] 소스트리 오류 - 소스트리 push 브랜치 리스트 안뜨는 현상 (0) | 2021.07.03 |
---|---|
[Git] amend (feat. SourceTree) (0) | 2021.03.23 |
[GitHub] GitHub 마크다운 작성 시 이미지 업로드 방법 (0) | 2021.03.18 |
[Git] git branch 병합 충돌 해결, pull request (ft.소스트리) (0) | 2021.03.17 |
[Git] git branch (branch 만들기, 이동하기(checkout), 병합하기) (ft.소스트리) (0) | 2021.03.16 |