개발👩💻/git
git: rebase 심화 (rebase --onto: branch 부모의 부모에 대한 rebase)
gigibean
2021. 4. 17. 22:04
728x90
branch가 한 줄기만 있다면
# feature branch에서
$ git rebase <main branch>
위 명령어만 적으면 rebase할 수 있다.
그렇다면 해당 브랜치의 부모브랜치의 부모브랜치, 즉 1번의 브랜치를 거쳐 rebase는 어떻게 할까?
위 그림과 같은 상황에서 client를 main 브랜치로 rebase를 해야한다고 하면,
아래 그림과 같이 client만 main 브랜치 커밋들 옆에 붙어야 한다.
이렇게 하기위해선
$ git rebase --onto main server
# rebase --onto <main branch> <middle branch>
위 명령어를 통해서 rebase할 수 있다.
그 후 main branch와 client branch를 fast-forward로 merge하면 된다.
마지막 server도 main branch로 rebase하고 싶다면
$ git rebase main server
# server를 main branch로 rebase
위와 같은 명령어로 server도 rebase할 수 있다.
server도 rebase한 후 merge를 하면 아래와 같이 선형의 history를 갖게 된다.
반응형