[TIL #34 WECODE] Git Workflow & Rebase

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

210330 WECODE #34 Git Workflow & Rebase

git clone

git checkout -b feature/wooyoungkim 브랜치를 생성하고 들어가서

wooyoungkim.md 파일을 만들어 "commit 메세지 3개를 세팅해보겠다." (작업 다하고 add commit후 여기서부터 시작!!!)

  • 작업 브랜치에서 commit 메세지를 3개 남겨놓은 상태이다.

git checkout main
git pull origin main :
다시 main브랜치로 이동해서 리모트의 mainpull받는다.

git checkout feature/wooyoungkim :
pull을 받은 뒤 수정사항이 있었던 브랜치로 이동

지금까지는 conflict를 해결한다고 git merge main 이었지만
rebase 시키기 위해 git rebase -i main을 입력한다.

  • 해당 작업 브랜치에서 했었던 commit 메세지 3개가 잘 들어왔다.
    첫번째 메시지만 pick으로, 나머지 메시지는 s로 변경해준다.(이게 squash !!)

  • 이때 윈도우 기준 c+w를 눌러주면 insert모드로 가지 않고도 바로 수정이 가능하다.
    :wq로 저장 후 나오기

프로젝트 중에는 여기서 conflict가 발생하게 된다.
conflict해결 후 add -> git rebase --continue

✅ add 이후 commit을 안하고 넘어가는 이유

  • add 이후 git commit -m으로 새로 커밋을 남기면 리베이스 이후 불필요한 커밋이 추가된다!

  • add 이후 바로 git rebase --continue를 진행시
    머지가 필요하다면서 기존 커밋창으로 넘어가지므로
    거기서 :wq 저장하고 나오면 추가되는 커밋이 없이 리베이스가 진행된다

  • 이제 여기서 commit 메시지 3개를 하나로 합치는 작업을 진행하면 된다.
    나는 commit 메시지를 "squashed commit"으로 수정해보겠다.

  • 이렇게 한 브랜치의 여러 커밋 메시지를 하나로 합치는 작업을 하고
    git push origin feature/wooyoungkim -f
    -f 옵션을 사용하여 force push를 진행한다.

profile
비전공으로 일식 쉐프가 되었듯, 배움에 겸손한 프론트엔드 개발자가 되겠습니다 :)

1개의 댓글

comment-user-thumbnail
2021년 4월 2일

rebase할 때는 conflict 해결 후 add git rebase --continue 입력!

답글 달기