git rebase에 대해서

박준영·2021년 7월 4일
0
post-thumbnail

git rebase란??

  • git rebase 를 진행하게 되면 브랜치를 베이스로 커밋을 재정렬해주는 기능으로 git log와 commit을 깔끔하게 볼 수 있다는 장점을 가지고 있습니다.

백업

백업은 git rebase를 하기전에 실행하기를 추천드립니다. rebase에 익숙하지 않으면 파일을 날릴 수 도 있기때문에 꼭 백업을 하시기를 바랍니다.

백업은

cp -rpv adwards-frontend adwards-frontend2 작성하는데

cp -rpv 왼쪽은 현재의 폴더명, 오른쪽이 새로 생성한 폴더명입니다.

그 후 cd adwards-frontend 를 통해 다시 원본 폴더로 이동하시면 됩니다.


git rebase 진행 방법

먼저 commit이 여러개가 있거나 메인을 최신화 시키고 브랜치도 최신화 시키기 위해서는git rebase -i main 을 이용합니다

이렇게 커밋 내역이 나오는데 맨위에 커밋을 pick으로 남기고 나머지를 s인 squash로 바꿔줍니다.
그리고 :wq를 눌러주면 저장하고 나오게 되면서

이런 메시지가 있는데 저는 dd를 통해 다 지우고 commit 메시지도 하나로 유지하려고 했습니다.

이렇게 진행한다면 완료 입니다!!


git rebase 충돌

git rebase -i main을 하다가 충돌을 일어나면 로직을 수정하고 git add . 를 해주면서 충돌을 해결해줍니다. 여기서 포인트는 git rebase중에는 git commit을 남기지 않는것 입니다. 이렇게 해결을 하고 나면 git rebase --continue 를 해주면서 해결을 해줍니다. git rebase를 하기전에 되돌리기 위해서 git rebase --abort 를 해주면됩니다.


충돌 사례(사진없음)

저는 한 브랜치에서 git commit을 여러개를 남기고 다른 브랜치도 왔다갔다 하면서 한참동안 rebase를 해주지 않았더니 commit사항들이 꼬이기 시작했습니다. 이제 git rebase -i main을 정렬을 통해 합치려고 했더니 커밋 수 만큼 충돌이 일어났습니다. 로직은 엄청 엤날 로직이 나왔고 해결이 되지 않았습니다. 이때는 최신 로직을 직접 넣어주며 충돌을 하나하나씩 해결해 갔고, 결국에는 최신내용으로 git rebase를 완료할 수 있었습니다.

0개의 댓글

관련 채용 정보