Git | GitLab
[Git] rebase - 브랜치 base 재지정
비번변경
2022. 11. 20. 00:40
Rebase
두 개의 공통 base를 가진 브랜치에서 한 브랜치의 base를 다른 브랜치의 최신 커밋으로 옮기는 작업이다. 문자 그대로 base를 다시 설정하는 작업이다. 브랜치를 합치는 방법 중 하나이기도 하다.
장단점
장점
1. 공유하고 있는 브랜치의 최신 변경 이력을 즉시 반영할 수 있다.
2. rebase는 별도의 커밋 이력을 남기지 않아 보다 깔끔한 commit history를 유지할 수 있다.
단점
1. 충돌이 발생하면 각 commit마다 충돌을 해결해주어야 한다. 충돌을 해소할 때마다 continue rebase를 해주어야 하는 번거로움이 있을 수 있다.
2. 이미 원격 저장소에 push 한 커밋을 rebase 하는 것은 위험하다.
방법
현재 Git 저장소 상태가 아래와 같다고 하자. 작업을 하고 있던 브랜치는 Feature이다.
Feature 브랜치의 base를 Main 브랜치로 설정함으로써, Main 브랜치의 최신 변경 이력 기반으로 작업하고자 할 때는 다음과 같이 쓸 수 있다.
git rebase [<upstream>]
# 예시
git checkout Feature
git rebase Main
또는 아래와 같이 실행할 수도 있다.
git rebase [<upstream> [<branch>]]
# 예시
git rebase Main Feature
rebase한 후의 브랜치 이력은 다음과 같이 변경된다.
참고 문서
https://www.atlassian.com/git/tutorials/rewriting-history/git-rebase