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를 갖게 된다.
반응형
'개발👩💻 > git' 카테고리의 다른 글
git: tracking branch & upstream branch (0) | 2021.04.17 |
---|---|
git: gitignore 파일 규칙 (0) | 2021.04.17 |
git: branch와 status관련 명령어 (branch, switch, diff, rm, restore, reset) (0) | 2021.04.17 |
git 이란? git 의 flow와 file lifecycle (0) | 2021.04.17 |
git merge와 rebase의 차이: rebase의 이해 (0) | 2021.04.17 |