[Git Error] Git 중간 커밋 삭제 (git rebase --interactive 옵션)
자리가 변경되고 나서 다른 계정의 commit이 나의 commit내역으로 올라가 파일의 내용이 모두 지워지는 상황이 발생했다!
git rebase -i <수정할 commit의 직전 commit>
commit 히스토리를 수정하기 위해 검색을 해보았는데, rebase를 활용하면 해당 commit을 지울 수 있다고 해서
질문을 남긴 후 바로 commit 삭제를 진행했다.
--interactive는 말 그대로 git rebase 명령어를 대화형으로 실행하는 것을 뜻한다고 하는데, 아직 와닿지가 않는다!
먼저 내가 수정하고 싶은 commit의 바로 이전 commit을 알아야 한다.
나는 gitlab에서 commit hash 값을 가지고 왔다. (수정할 commit의 hash가 아니라 바로 직전의 commit이어야 한다.)
git rebase -i <수정할 commit의 직전 commit>
위의 명령어를 실행하면 터미널 화면에 commit 리스트와 사용할 수 있는 명령어 그리고 설명이 나온다.
여러 가지 명령어가 있지만 다른 계정으로 commit 된 내용을 지우고 싶기 때문에 drop 명령어만 정리하고 넘어가려고 한다.
drop(d도 가능)은 history에서 명시적으로 commit을 삭제하는 명령어이다.
만약 리스트 중 두 번째 commit을 지우고 싶다면
1) i key를 누르고 insert 모드로 변경한다.
2) pick으로 되어있는 부분을 drop으로 변경한 후 :wq 로 저장하면 반영된다.
나머지 명령어들은 아래의 블로그를 참고해보길 바란다.
https://wormwlrm.github.io/2020/09/03/Git-rebase-with-interactive-option.html