TIL_55_git rebase

poohv7·2021년 3월 30일
0
post-thumbnail

우아한 형제들 git flow

git rebase

깃 플로우 & 깃 리베이스

마스터에는 배포버전이 올라간다
개발 단계에있는 코드들은 디벨롭에서 합쳐진다

피쳐브랜치 파고 왜 다른 브랜치 파지말라는걸까?

피쳐는 내가 작업하는 곳.
리뷰를 기다리고 있는 동안에는 무조건 수정사항이 생김
그럼 결국 충돌이 생기기 마련
그래서 최소한의 충돌만 일어나게 하려고
브랜치를 파지말라고 하는 것

불필요한 머지와 커밋이 계속 생긴다.
복잡한 프로젝트 히스토리가 생긴다.

리베이스: 불필요한 머지와 커밋을 제거.
같은 작업을 진행한 커밋끼리 모으기.
커밋 하나가 베이스가 됨
베이스를 다시 지정한다.
단점: 커밋과 커밋 사이에서 일어나는 작업 내용 사이의 충돌이므로, 세 개의 커밋이 한번에 충돌 날 가능성이 있다.

스쿼시를 통해서 커밋이 합쳐진다.

리베이스는 머지를 대체한다.
커밋을 안칠거임 리베이스가 머지이기 때문.
새로운 작업을 모두 마치고 푸시 하기 전에는
메인 브랜치로 이동하여 리모트 메인을 풀 받는다
내가 푸시할 피쳐 브랜치로 이동
git rebase -i main 을 진행

리베이스 하는 동안 스쿼시 진행할 때에는
가장 오래된 커밋을 픽한다
다른 커밋 메세지는 가장 오래된 커밋을 기준으로 스쿼시 한다.
다른 커밋의 작업 내역이 없어지는 것은 아님
Esc -> :wq! 로 창에서 빠져나오자

리베이스를 하면서 스쿼시를 같이 한다.
커밋을 두 세개 정도 했으면 리베이스 스쿼시를 꼭 해주자. 그 때 그때 마다 커밋을 합쳐주자 두 세개 정도는 꼭
절대 열개 스무개씩 모으지말자

0개의 댓글