git 을 사용하다 보면,
이미 커밋한 히스토리를 변경하거나 또는 삭제하거나,
내용을 추가해야하는 상황이 자주 발생합니다.
이때 사용할수 있는 명령이 바로 $git rebase -i
입니다.
-i
는 --interactive
의 약어로 말 그대로 git rebase 명령어를 대화형
으로 실행하겠다는 의미입니다.
다수의 feature 브랜치가 merge 된 epic branch
를 main 브랜치로 merge하는 상황
drop
하고 싶어서.$ git checkout epic
$ git rebase -i main
2)의 명령어를 실행하면 editor로 main 브랜치로 쌓아올릴커밋 리스트
가 보인다. 각 명령어를 필요에 따라 수정하고 save.
# Rebase 326fc9f..0d4a808 onto d286baa
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
#
# If you remove a line here THAT COMMIT WILL BE LOST.
# However, if you remove everything, the rebase will be aborted.
#
$ git rebase --continue