🌿 중급 개발도구
rebase가 뭔가요?
쉽게 이해하기
여러 종이쪽지에 메모를 했는데, 나중에 깔끔하게 다시 쓰는 것과 비슷해요. 내용은 같지만 순서를 정리하고 불필요한 부분을 빼서 읽기 쉽게 만드는 거죠. rebase는 커밋 히스토리를 이렇게 정리하는 작업입니다.
핵심 정리
Git에서 커밋 히스토리를 깔끔하게 정리하는 방법입니다.
자세히 알아보기
rebase는 Git에서 커밋들의 기준점(base)을 변경하는 작업입니다. merge와 비슷하게 브랜치를 합치는 데 사용되지만, 히스토리를 선형으로 만든다는 차이가 있어요.
merge는 두 브랜치를 합칠 때 merge commit이라는 새로운 커밋을 만들어요. 그래서 히스토리가 갈라졌다가 다시 합쳐지는 모양이 됩니다. 반면 rebase는 한 브랜치의 커밋들을 다른 브랜치 위로 '옮겨' 놓아요. 마치 처음부터 그 위에서 작업한 것처럼 보이게 만듭니다.
예를 들어 feature 브랜치에서 작업하는 동안 main 브랜치가 업데이트됐다면, `git rebase main`을 실행하면 feature의 커밋들이 최신 main 위로 올라갑니다. 이렇게 하면 히스토리가 일직선으로 깔끔해져요.
rebase는 주로 Pull Request 전에 커밋 히스토리를 정리할 때 사용합니다. 여러 개의 작은 커밋을 하나로 합치거나(squash), 커밋 순서를 바꾸거나, 커밋 메시지를 수정할 수 있어요. 다만 이미 push한 커밋은 rebase하면 안 됩니다. 다른 사람이 그 커밋을 기준으로 작업하고 있을 수 있기 때문이에요.