Git : ) rebase

이선호·2021년 10월 20일
0

Git & GitHub

목록 보기
2/2

rebase는 merge와 달리 머지 커밋을 남기지 않는다.
그렇게 때문에 더 깰끔한 코드를 만들 수 있다.

rebase : 말 그대로 (re-base)로 베이스를 재배치한다는 뜻
merge : 머지는 히스토리를 볼 때 뿌리가 여러개로 나눠져 있어서 히스토리를 찾아갈 때 보기가 어렵다.

⭐️ PR에 올릴땐 commit 하나만 남기기

  • 커밋 메시지는 하나만 작성한다.(squash)
    자세히 말하자면 커밋을 스쿼시 해서 하나의 커밋으로 만들기

  • 멀티 라인 커밋 메시지를 정성스럽게 작성한다.

  • conflictcommitcommit 사이의 작업 충돌이므로, 모든 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 main
  • 하고 나면 conflict 사항 화면에 보이고, 수정 진행
  • add 하고 git rebase --continue
    git add .를 해주고 commit를하면 안됨!!
  • 이후 push 진행하면 rejected 발생하고, push가 안됨.
  • git push origin 브랜치이름 -f 를 진행

0개의 댓글