git rebase란 말 그대로 re base. 기초를 다시 한다는 의미로 git branch를 merge 하는 개념에서 출발한다. git merge와 branch의 개념이 잡혀있다는 조건 하에 포스팅을 작성해보도록 하겠다-
보통 git 관련하여 검색을 하면, ㅇ-ㅇ-ㅇ식의 커밋 과정을 많이 보여준다. 개인적으로는 그 부분이 참 눈에 들어오지 않는다고 생각했는데, 막상 관련한 포스팅을 하려고 보니 저런 표현이 아니고서는 깔끔하게 설명하기가 참 난감하다. 패드도 포토샵도 없는 내가 좋은 포스팅을 해보고자 손으로 직접 그리며 작성하니 나같이 평소 눈에 들어오지 않는다고 하셨던 분들에게도 부디 유익한 포스팅 자료가 되길..
rebase라고 하면 사실 많이들 어렵다는 생각을 하는데, 기본 개념 자체는 어렵지 않다. 잘 활용하고 다루기가 까다로울 뿐.. 여기 다음과 같은 브랜치와 커밋들이 있다고 가정해보자.
master 브랜치는 A, B, C 순으로 commit을 하였다. C가 커밋 된 시점에서 feature 브랜치가 분기되어 새로운 CA, CB, CC의 커밋을 진행하였다. feature 브랜치에 커밋이 쌓이는 사이 master 브랜치에도 D, E의 커밋이 쌓이게 되었다. feature 브랜치는 master 브랜치와 합치려는 순간 확인하여 보니 master은 C가 아니고 E인 상황이었다. 하여 feature의 base가 되는 커밋을 master의 C가 아닌 E로 바꾸어 주려고 한다. base를 다시 바꾸다는 의미에서 이를 rebase라고 부른다.
rebase를 해준 feature 브랜치는 하단과 같이 변할 것이다.
백문이 불여일견. 직접 테스트해보자.
master branch에 다음과 같은 두 개의 commit을 하였다.
(브랜치명) - 커밋 순번
해당 브랜치에서 새로운 브랜치를 따고 커밋을 진행했다. 파란 라인을 base로 하는 feature 브랜치에 3개의 커밋을 진행하였다.
다시 master로 돌아와 2개의 커밋을 더 추가했다.
그럼 현재 상태는 다음의 상단 검은 실선과 같다.
이것을 이제 하단 파란 점선처럼 변경시키는 것이 목표이다.
먼저 HEAD를 feature 브랜치로 옮겨준다.
git checkout '이동할 브랜치 이름'
git checkout origin/feature
다음 쿨하게 rebase를 실행해준다.
git rebase '합치고 싶은 브랜치 이름'
git rebase master
그럼 다음과 같이 test4 위에 feature의 commit이 쌓이는 것을 볼 수 있다. 이게 바로 rebase이다.
'Let`s study hard : 지대넓얕 > TIL:today I learn' 카테고리의 다른 글
git rebase 중 conflict 해결 (반)성공기 (0) | 2021.11.14 |
---|---|
git rebase 중 conflict 해결 실패기 (0) | 2021.11.13 |
Tistory 코드블럭으로 소스 작성하기. (0) | 2021.11.07 |
프론트엔드에서 에러 처리하기 - 기본문법 (0) | 2021.10.26 |
프론트엔드에서 에러 처리하기 - SENTRY (0) | 2021.10.23 |