WEBBOOK CHAPTER

현장에서 살아남는 Git: 10장 rebase는 내 커밋의 기반을 다시 쓴다

10장 rebase는 내 커밋의 기반을 다시 쓴다

rebase는 내 브랜치의 커밋을 새 기반 위에 다시 적용한다. 내용이 같아 보여도 부모가 달라지므로 새 커밋 ID가 생긴다. 공유되지 않은 기능 브랜치를 최신 main 위에 정리할 때 유용하다.


git switch feature/search
git rebase main
git log --oneline --graph --decorate --all

충돌이 나면 파일을 고치고 git add한 뒤 git rebase --continue한다. 해당 커밋이 불필요하면 이유를 확인하고 --skip, 전체 시도를 취소하려면 --abort다. 종료 명령이 막히면 먼저 git status가 말하는 현재 작업을 읽는다.

이미 여러 사람이 기반으로 삼은 커밋을 rebase해 force push하면 동료의 역사가 갈라진다. 공유 브랜치에서는 하지 않는 것을 기본으로 한다. 꼭 갱신해야 하는 개인 원격 브랜치라면 --force보다 --force-with-lease로 내가 마지막으로 본 원격 상태가 바뀌지 않았는지 확인한다. 그래도 리뷰 시스템과 팀 규칙을 먼저 따른다.

3부 세 도구로 같은 상태를 읽는다