지금까지
git merge
명령어를 사용했지만 2차 프로젝트부터는git rebase
로 대체할 것이다.
git rebase -i main
: 명령어를 통해 중간 중간 브랜치에 쌓인 커밋을 하나로 정리- 해당 브랜치의 base commit을 확인하는 방법 :
git merge-base main feature/sign-in
(필수 아님)
- 작업브랜치에서 git rebase -i master
- pick => squash로 커밋 합치기
- [Add]메세지 정리
rebase
Conflict 해결rebase
도중 충돌이 일어날 경우 마치 코드가 날아간 것 처럼 보일 수 있다. 코드가 사라진 것이 아니라 코드를 합치던 도중 중단된 것이다. 충돌을 해결하고 남은 과정을 끝까지 진행하면 모든 코드가 다 들어와 있게 된다. 혹 잘못 리베이스를 했다면, git rebase —-abort
(리베이스 도중) 혹은 git reflog
로 돌아갈 지점을 찾은 후 git reset --hard 돌아갈지점
(리베이스 완료 후) 명령어로 복구할 수 있다.
- master 브랜치로 checkout
- git pull
- 작업 브랜치로 checkout
- git rebase -i master
- conflict 발생/ conflict 해결
- git add .
- git rebase --continue
이미 올라간 commit이 있기 때문에 push
가 불가능하다고 나온다.
그럴때는 이미 작업자가 앞에 commit 내용을 알고 있으므로 force push를 진행한다.
- 작업한 파일 커밋 합친 후
- git push origin featre -f
- squash