Home Git 커밋 삭제하기
Post
Cancel

Git 커밋 삭제하기

마음에 들지 않는 커밋을 삭제하고 싶을 때


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에는 사용하면 안 된다.

This post is licensed under CC BY 4.0 by the author.