Rebase 와 Squash

백승진·2020년 12월 1일
0
  1. rebase는 merge와 같은 결과를 낸다. 주로 main(또는 master) branch를 작업 branch로 병합할 때 merge를 사용하게 되는데 rebase는 작업 branch가 생성되었던 main 의 기준점을 main branch의 가장 마지막 변경점으로 변경하고 병합하도록 처리한다. 이 때 작업 branch의 commits 들을 하나로 묶어 함축시킬 수 있다.

    git rebase -i main

    위와 같이 실행하면 편집창이 하나 뜨면서 기동안 commit했던 내용들이 표시된다. 각 표시 앞에서 'pick' 이라는 표시가 달리는 데 최상위 pick은 놔두고 밑의 commit 들을 pick 대신 s(squash)로 변경하면 이들을 squash 처리하게 되며 편집창을 저장종료하면 다음 편집창에서 commit할 메시지를 선택하는 화면이 나온다. 이를 통해 여러개의 commit을 하나로 압축할 수 있다.

  2. squash 있는 상태에서 다시 rebase 를 하면 원격저장소에서는 해당 branch를 인식 실패한다.
    이를 무시고 올리려면 아래와 같이 실행

    git push origin feature -f(or --force)

  3. rebase 과정서 충돌발생시 충돌 잡고 add 후 계속 진행 명령

    git rebase --continue

profile
12년 .NET 개발 경력을 가진 웹 초짜 개발자입니다 :)

0개의 댓글