기타/git

[Git] rebase, 브랜치 커밋 이력 재정렬

책 읽는 개발자_테드 2022. 10. 30. 18:25
반응형
$ git rebase "재정렬을 위한 기준 브랜치"

- 특정 브랜치의 커밋 이력을 기준으로 작업 브랜치의 커밋 이력을 재정렬

 

merge vs rebase

예시)

master 브랜치의 커밋 이력이 다음과 같고,

 

feature/b 브랜치의 커밋 이력이 다음과 같다.

 

merge와 rebase의 차이를 확인해보자. master 브랜치를 작업 브랜치하여 feature/b 브랜치를 병합해보자.

$ git checkout master
$ git merge feature/b

 

$ git log --oneline --graph

위와 같은 결과를 볼 수 있다. 이제 rebase와의 차이를 확인해보자. merge로 추가된 ce3d316 커밋을 제거한다.

$ git rebase -i HEAD~2

 

다음으로 feature/b 브랜치를 작업 브랜치로 master 브랜치를 기준으로 커밋 이력을 재정렬하자.

$ git checkout feature/b
$ git rebase master

$ git log --oneline --graph

master 브랜치의 최신 커밋 이력(44d85bc)을 기준으로 feature/b에 추가된 커밋 이력(64c5367)이 재정렬되었다.

이제 다시 master 브랜치를 작업 브랜치로 변경하고, merge한다.

$ git checkout master
$ git merge feature/b
$ git log --oneline --graph

fast-forward 방식으로 앞선 방법보다 깔끔하게 merge된 걸 확인할 수 있다.

반응형