- 대화형으로 Git 커밋 히스토리를 수정할 수 있게 해주는 Interactive 옵션에 대해 알아봅니다.
---
Git을 쓰다보면 이런 고민을 자주 하실 겁니다.
- 아, 작업할 때는 몰랐는데, 알고보니 과거의 커밋 메시지 하나에 오타가 들어가 있네?
- 테스트 용도으로 작업한 커밋들이 딸려 들어갔네?
- 성격이 비슷한 커밋이 두 개로 분리되어 있는데, 이걸 합칠 수는 없을까?
- 아… 누가 보기 전에 수정하고 싶다!
이런 상황에서 사용할 수 있는 것이 바로 git rebase 명령어입니다.
일반적으로 리베이스라고 하면 두 개의 브랜치를 합치는 용도로 git merge 와 함께 쓰이는 것으로 알고 있으실 텐데요, 현재 작업중인 브랜치의 최신 커밋을 가리키는 HEAD 포인터를 이동시킬 수 있다는 특성을 이용해서 과거 커밋 히스토리를 수정하는 데에도 사용할 수 있습니다.
특히 그 중에서도 대화형으로 실행할 수 있는 옵션인 --interactive (또는 -i) 를 이용한다면 더욱 쉽게 수정이 가능합니다.
제가 속해 있는 팀에서는 PR을 올릴 때 Git 히스토리도 빡세게 관리하기 때문에, 이런 옵션을 공부해둔 것이 많은 도움이 되었습니다.