[TIL / Git] rebase

Changyun Go·2021년 12월 3일
0
post-thumbnail

[TIL / Git] rebase

rebase


  • 병합과 마찬가지로 두 브랜치의 내용을 하나로 합치고 싶을 때 사용한다.
  • 현재 브랜치가 대상 브랜치 위로 올라간다.
  • 소스트리를 재배치하여 트리를 더 깔끔하게 유지할 수 있다.
  1. 예를 들어 A브랜치와 B브랜치가 있다.
  2. master 위치에 테스트 브랜치를 하나 만들어서 B브랜치에 병합한다.
  3. A브랜치로 체크아웃해서 테스트 브랜치에 rebase한다. → 충돌 나는 건 똑같지만 해결 방법이 다르다.
    • 두 변경사항 모두 수락 ⇒ add ⇒ 현재 변경사항을 테스트 브랜치에 재배치 ⇒ 재배치 계속
    • 소스트리의 가지가 사라지고 한 줄로 정리된다.
  4. 테스트 브랜치로 체크아웃 후 브랜치A를 병합한다.
  5. master를 트리 최상단으로 병합한다.
  6. 필요없는 브랜치를 모두 삭제한다.

장단점

장점

  • 커밋 히스토리가 깔끔하게 정리된다.

단점

  • 충돌 가능성이 높다.
  • 어렵고 위험하다.
  • 이미 원격에 있는 브랜치를 rebase하면 안 된다.

P.S.

✍️ 브랜치를 깔끔하게 정리할 수 있다는 점에서 굉장히 매력적이지만, 로컬에서만 사용할 수 있다는 한계 때문에 그리 자주 사용할 일은 없을 것 같다.

Reference


0개의 댓글