[VCS] Github에서 실수로 Push한 Commit 삭제하기

Git 작업 시 오타가 났거나 올라가면 안되는 Commit을 Push 했을경우 어떻게 삭제해야 할까?

- 지워야 하는 Commit

잘못된 커밋이 몇개나 있으면 가독성을 해치게 된다. 깔끔하게 삭제하고 새롭게 commit 내용을 추가해보자.

지워야하는 해당 폴더에 들어가서 git log로 내역이 잘 나오는지 확인하자.
* Hexo를 사용하는 유저는 .deploy_git 폴더에서 작업해야함

- git log 화면

지워야할 내용을 확인했다면 삭제 명령어를 입력하자.

1
git reset --hard HEAD~[지울 개수]

reset은 현재 진행중인 최신 commit에서부터 아래로 [지울 개수] 만큼 삭제한다.

- 삭제화면

- 삭제 이후 git log

현재 local의 commit 상태는 그대로 유지되니 올바른 내용의 commit을 한 후에 push를 진행하면 된다.

1
git push origin +master // 강제푸시해야함

혹시 reset의 HEAD 숫자를 잘못입력해서 너무 많이 reset했을경우, git reflog를 사용해 몇번째 HEAD로 이동해야 하는지 살펴본다.

이동해야할 HEAD를 확인했으면

1
git reset --hard HEAD@{1}

과 같이 강제로 되돌릴수 있다.

공유하기