(현재 작업 중인 브랜치에서)
$ 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가 성공됐다면 커밋 메시지 수정 가능)
-----> 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한 경우
🔽 '$ git push origin feature/nav -f
'로 강제 push한 경우
✨이해를 도울 참고 이미지(출처: 현재님🍎)