본문 바로가기

GitHub

[GitHub] Push한 커밋 삭제하기

언리얼과 깃허브로 협업하기 위해 이것저것 테스트 중에, 실수로 Pull 하는 대신 Push를 해버렸다.

이미 커밋을 넘어 Push까지 했기 때문에, 다시 되돌리는 방법을 찾아나섰다.


GitHub에 Push한 커밋 삭제하기

우선 로컬 리포지터리 폴더를 열고, 우클릭 - Git Bash here로 Git Bash를 실행해주자.

 

 

그리고 다음 절차를 따른다.

 

 

 

1. git log --oneline으로 삭제할 커밋 찾기

git log만 작성해도 충분하며, --oneline을 추가하면 모든 커밋을 한 줄로 보여준다.

 

 

 

마지막에 올린 HEAD 커밋을 삭제하고 싶다. 이는 main 브랜치가 아닌, KMC 브랜치에만 올라간 상태다.

 

 

 

2. git reset으로 커밋 삭제하기

삭제할 커밋을 찾았으니, 이제 삭제를 진행해보자.

  • HEAD 커밋을 삭제하고 싶다면: git reset HEAD^
  • HEAD부터 n개를 삭제하고 싶다면: git reset HEAD~n

나의 경우는 마지막 커밋만 삭제하면 되니, 첫 번째 방법을 써보겠다.

 

 

 

성공적으로 커밋한 내용들이 삭제되었다.

 

 

 

3. 변경 사항 GitHub에 갱신하기

성공적으로 삭제했다면, 이번엔 GiitHub 리포지터리에 이를 알려 갱신해주자.

git push -f origin "브랜치 이름"을 통해 갱신할 수 있다. 브랜치 이름에 공백이 들어간다면 쌍따옴표가 필수이며, 없다면 선택이다.

 

 

 

성공적으로 갱신되었다.


정말 삭제되었을까?

내가 올린 커밋이 삭제된 게 홈페이지에서도 확인된다.


이번 글에선 잘못 올린 커밋을 삭제하는 법을 알아보았다. 누구나 실수할 수 있고, 수습할 방법도 있을 테니 걱정하지 말자.


참고 문헌