개요
- Git 의 Commit History 를 수정할 수 있게 해주는 Interactive 옵션에 대해서 알아보자.
- 처음부터 완벽한 계획을 세우면서 작업을 하는 게 아니다 보니, 작업 도중 commit 히스토리를 수정해야 하는 상황을 자주 맞닥뜨릴 수 있습니다.
- 과거의 coomit 메시지를 수정하고 싶은 경우
- 의도하지 않은 commit 이 딸려 들어가 해당 commit 만 지우고 싶은 경우
- commit 을 합치고 싶은 경우
- 현재 작업 중인 branch 의 최신 commit 을 가리키는 HEAD 포인터를 이동 시킬 수 있다는 특성을 이용해서 과거 commit 히스토리를 수정할 수 있다.
Git Rebase --Interactive
git rebase -i ${수정할 커밋의 직전 커밋}
# 커밋 해시를 이용한 방법
git rebase -i 9d9cde8
# HEAD를 이용한 방법
git rebase -i HEAD~3
- 해당 명령어를 입력하면 편집기가 열리는데 i 를 누르면 편집을 할 수 있다.
pick
- commit 을 수정하지 않고 그대로 사용
- 단, 라인의 위치를 바꾸면 commit 의 위치가 바뀌며, 라인 자체를 지워버리면 commit 자체가 지워져 버린다.
reword
- commit message 를 수정
- commit 의 명령을 reword 로 바꾸고 저장 후 종료를 하면 commit message 를 수정할 수 있는 편집기가 열린다.
edit
- commit 작업 내용 수정 & commit message 수정
- commit 의 명령을 edit 으로 바꾸고 저장 후 종료를 하면 현재 HEAD 가 해당 commit 으로 이동한 것을 볼 수 있다.
squash & fixup
- 해당 commit 을 이전 commit 과 병합