마음에 들지 않는 커밋을 삭제하고 싶을 때
1
git log
- 위 명령어로 아래와 같이 git history를 확인한다.
삭제하고 싶은 커밋 이전 커밋 해시 키값을 복사한다. 예를 들어,
3 commit
을 삭제하고 싶거나3 commit
~4 commit
을 삭제하고 싶다면2 commit
해시 키값을 복사한다.rebase -i
옵션과 함께 복사한 키값을 뒤에 입력한다.
1
git rebase -i 49ae0dd3960d31de41656744e0c3da6153a446e6
여기서 rebase를 중지하고 싶다면
git rebase --abort
명령어로 원래 상태로 되돌아간다.삭제하고 싶은 커밋을
drop
으로 변경start rebase
버튼을 클릭한다.
- 아래와 같이 conflict가 나는 경우
git status
로 파일을 확인한 후 파일을 수정한다.
- 파일을 수정한 뒤
git add .
후 리베이스를 계속 진행한다.
1
git rebase --continue
git log
로 확인해 보면 아래와 같이 커밋이 삭제된 것을 확인할 수 있다.
주의할 점!
스크린샷 해시 키값을 확인해 보면 리베이스가 시작된! 커밋이 삭제된 부분부터는 해시 키값이 변경된 것 을 알 수 있다. 즉, 새로운 커밋이 되었기 때문에 서버에 push가 된 history에 push를 하려면 아래 명령어로 서버에 업로드할 수 있다.
1
git push origin main --force
그렇기 때문에 혼자 또는 서버에 아직 업로드되기 전에 사용하고, 개발자와 협업하고 있는 상황에서는 서버에 업로드된 history에는 사용하면 안 된다.