TIL | no merge, let's start rebase now.

0l0l·2021년 9월 16일
0

TIL

목록 보기
73/86

merge는 그만! 이제는 rebase하기!

(현재 작업 중인 브랜치에서)
$ git add .
$ git commit -m "커밋메시지"

(main 또는 master 브랜치로 이동 ← pull하기 위해)
$ git checkout main

(rebase하기 전에 pull 받아와서 동기화. conflict 발생하면 해결하기)
$ git pull (origin/master)

(다시 내가 작업하던 브랜치로 이동 ← rebase하기 위해)
$ git checkout feature/nav

(드디어 🙆‍♀️ rebase! 🙆‍♂️ merge❌)
$ git rebase -i main

(rebase 명령어 작성 후, rebase 작업을 위해 에디터로 변경되면)
i를 눌러 에디터 수정 모드로 변경
② rebase 작업
⩥ 가장 오래된 작업의 커밋 메시지는 pick 으로 놔두기
⩥ 최근에 작업하여 올린 커밋 메시지는 pick에서 s 변경하기
esc +:wq를 작성해 수정 완료하여 에디터 나가기

(rebase 명령어 작성하면 rebase 작업을 위해 에디터로 변경된 터미널 화면)

pick [ 커밋로그 ] ← 오래된 커밋
s(squash) [ 커밋로그 ] ← 최근에 올린 커밋
s(squash) [ 커밋로그 ] ← 직전 올린 커밋

-----> Successfully가 떴다면 '참 잘했어요👏 도장' 쾅!
rebase 성공. 브랜치 업데이트 완료

(rebase가 성공됐다면 커밋 메시지 수정 가능)
-----> commit message 정리!
최근에 작업한 커밋 메시지 위주로 정리하되 이전에 작성한 커밋 메시지를 나열하기보다 작업과정을 한 눈에 파악할 수 있도록 작성하는 것을 추천!
무조건 한 줄로 작성하지 않아도 되고 여러 줄 작성하는 것도 가능!
📌 메인 작업을 타이틀로 작성하고, 세부 작업을 상세하게 여러 줄로 작성하기!

(드디어 PR(Pull Request) 올리기 위한 첫 push)

$ git push origin "내가 작업한 브랜치"
$ git push origin feature/nav


💡 주의!
처음 push한 이후 두번째 push부터는 일반 push 명령어를 작성하면 이전 push와 충돌하여 에러가 발생하므로 -f(force push) 옵션을 추가해야 한다.

🔽 이전과 같이 '$ git push origin feature/nav'와 같이 일반적으로 push한 경우
일반 push 역시 error

🔽 '$ git push origin feature/nav -f'로 강제 push한 경우
강제 push


✨이해를 도울 참고 이미지(출처: 현재님🍎)

현재님 rebase 참고사진01

현재님 rebase 참고사진02

profile
천방지축 빙글빙글

0개의 댓글