rebase는 merge와 달리 머지 커밋을 남기지 않는다.
그렇게 때문에 더 깰끔한 코드를 만들 수 있다.
rebase : 말 그대로 (re-base)로 베이스를 재배치한다는 뜻
merge : 머지는 히스토리를 볼 때 뿌리가 여러개로 나눠져 있어서 히스토리를 찾아갈 때 보기가 어렵다.
⭐️ PR에 올릴땐 commit 하나만 남기기
커밋 메시지는 하나만 작성한다.(squash)
자세히 말하자면 커밋을 스쿼시 해서 하나의 커밋으로 만들기
멀티 라인 커밋 메시지를 정성스럽게 작성한다.
conflict
는 commit
과 commit
사이의 작업 충돌이므로, 모든 commit
이 다 충돌이 일어날 수 있다.
어느 정도 커밋 쌓이면 스쿼시 진행!!!
1. 커밋 스쿼시 하기
git add .
git commit -m"내용"
git rebase -i master(최근만드신분들은 main)
pick
/ s
구분하기 : 가장 오래된 커밋(최상단 커밋) 선택(pick)하고 :wq
로 나가기
멀티 라인 커밋 작성하고 :wq
로 나가기
이때 insert 모드 오류로 충돌이 날 수 있는데 그럼 rebase 했던 이력을 모두 취소해야한다. 이미 rebase 했던 이력은 남아있기 때문
이전 상태로 되돌리기 git rebase --abort
마무리 할거면 여기서 push
진행
2. Conflict 해결하기
main
브랜치로 넘어가 pull
받기conflict
발생한 브랜치로 넘어가서 git rebase -i mainconflict
사항 화면에 보이고, 수정 진행add
하고 git rebase --continuegit add .
를 해주고 commit
를하면 안됨!!rejected
발생하고, push가 안됨.