Git Rebase 로 commit 내역을 깔끔하게!

lilyoh·2020년 9월 8일
0


프로젝트를 진행하면서 가장 어려운 부분 중에 하나가 Git 사용이었다. 멋쟁이 동기 위코드 11기 태하님이 정리해주신 git 명령어 모음을 봐도 써보지 않았으니 기억에 남지도 않았고... 나 편하자고 branch 를 옮길 때마다 commit, push 를 하는 바보같은 짓을 반복하고 있었다. 그러던 중에 rebase 세션을 듣게 되었고! commit 이 하나가 아니면 리뷰를 달아주지 않겠다는 멘토님들의 말을 듣고 rebase 복습을 했다.

아래의 글은 멋쟁이 두리 멘토님의 블로그 글을 읽고 다시 정리한 내용이다.

1. 백업하기

rebase 를 하다가 폴더를 통째로 날릴 수도 있기 때문에 미리 백업을 해둔다. 아래 명령어로 프로젝트 폴더를 그대로 복사한다. (굳이 백업하지 않아도 된다)

cp -rpv adwards-frontend adwards-frontend2

cp-rpv 오른쪽에 현재 폴더명, 복사할 폴더명 이렇게 두 개를 적어준다.

2. 로컬 master 브랜치 업뎃

rebase 하기 전에 로컬의 master 브랜치를 업데이트 해준다.

git checkout master // master 브랜치로 이동
git pull origin master // origin master 의 변경사항을 local master 로 가져오기
git checkout 내 작업 브랜치 // 내 작업 브랜치로 이동
git merge master // local master 의 변경사항을 내 작업 브랜치로 가져오기

master 브랜치를 업뎃하고 변경사항을 내 브랜치에 업뎃해준 다음 commit 을 남긴다.

git add .
git commit -m "커밋 메세지"

commit 을 마치고 push 를 하기 전이 rebase 를 하는 단계이다.

3. Rebase

git rebase -i master feature/브랜치 명

이렇게 써주면 pick 내용이 여러 개 뜬다. 그럼 맨 위에 commit 만 pick 으로 남겨두고 나머지는 s 로 다 바꿔준다. (이 때 pick 이 가장 위가 아니면 오류가 뜬다. 이렇게 해도 될 수도 있지만 나는 아직 리베이스 장인이 아니기 때문에 일단은 무조건 맨 위를 pick 으로 둔다.)

리베이스를 하고 충돌이 생긴다면 충돌을 해결하고 아래와 같이 해준다.

git add .
git rebase --continue
git push origin feature/브랜치 명

이미 github 에 pr 을 날린 상태라면 push origin feature/브랜치 명 뒤에 --force 를 해줘야 한다. git push origin -f feature/브랜치 명 이렇게 해줘도 된다.

github commit 내역을 보면 커밋이 1개로 줄어있다!!! 처음에 rebase 하는 것이 무서워서 동기 태수님의 도움을 받았는데 덕분에 지금은 rebase 가 덜 무서워졌다. 안 무섭다는 건 아니기 때문에... 2차 프로젝트가 끝나고 git 공부를 더 하겠다고 다짐한다! 😱

0개의 댓글