프로젝트를 만들다 보면 가끔 실수로 잘못 커밋을 하고 심지어 잘못된 커밋을 깃허브에 push까지 하는 경우가 있습니다. 이런 경우 어떻게 커밋을 삭제하는지 알아보도록 하겠습니다.
git log
: 커밋 내역 확인하기터미널에
git log
를 입력하면 커밋 내역을 확인할 수 있습니다. 커밋 내역을 보고 삭제하고 싶은 커밋을 확인합니다.
⬇️ 깃허브에서도 볼 수 있는 커밋 내역
저는 initial commit을 제외한 총 4개의 커밋 중 wrong commit을 삭제하려 합니다.
git reset HEAD^
: 로컬에서 커밋 삭제하기터미널에
git reset HEAD^
를 입력하면 가장 최근 커밋 한 개를 삭제할 수 있습니다.
git log
를 통해 wrong commit이 삭제된 것을 확인할 수 있습니다.
git push -f origin [브랜치명]
: 원격 저장소(깃허브)에서 커밋 삭제하기로컬에서는 wrong commit이 삭제되었지만 원격 저장소인 깃허브에서는 아직 삭제되지 않았습니다.
이제 원격 저장소인 깃허브에서도 wrong commit을 삭제해 보겠습니다.
터미널에
git push -f origin [브랜치명]
을 입력하면 깃허브에서도 로컬에서 삭제했던 wrong commit이 삭제됩니다.
Initial commit을 제외한 총 5개의 커밋 중 가장 최근 2개의 커밋을 삭제해 보겠습니다.
터미널에
git reset HEAD~2
를 입력하면 2개의 커밋을 한 번에 삭제할 수 있습니다.
⬆️ 4번째 5번째 커밋은 없어진 것을 확인할 수 있습니다.
삭제 내역을 깃허브에도 업데이트해 주기 위해 터미널에 git push -f origin [브랜치명]
을 입력합니다.
이번엔 한 번에 3개의 커밋을 삭제해 보겠습니다.
2대신 3을 적어주면 됩니다. -> git reset HEAD~3
나머지 커밋 3개가 삭제되어 Initial commit만 남게 됩니다.
깃허브에도 로컬에서 삭제된 내역을 업데이트해 주기 위해 터미널에 git push -f origin [브랜치명]
을 입력하면 깃허브에도 Initial commit만 남게 됩니다.
잘못된 내용이 있다면 댓글로 알려주세요!🤗
참고