[Git, GitHub] push한 commit 삭제하기

Hyo Min·2022년 10월 21일
0
post-thumbnail

프로젝트를 만들다 보면 가끔 실수로 잘못 커밋을 하고 심지어 잘못된 커밋을 깃허브에 push까지 하는 경우가 있습니다. 이런 경우 어떻게 커밋을 삭제하는지 알아보도록 하겠습니다.


1. git log : 커밋 내역 확인하기

터미널에 git log를 입력하면 커밋 내역을 확인할 수 있습니다. 커밋 내역을 보고 삭제하고 싶은 커밋을 확인합니다.
⬇️ 깃허브에서도 볼 수 있는 커밋 내역 저는 initial commit을 제외한 총 4개의 커밋 중 wrong commit을 삭제하려 합니다.


2. git reset HEAD^ : 로컬에서 커밋 삭제하기

터미널에 git reset HEAD^를 입력하면 가장 최근 커밋 한 개를 삭제할 수 있습니다.
git log를 통해 wrong commit이 삭제된 것을 확인할 수 있습니다.


3. git push -f origin [브랜치명] : 원격 저장소(깃허브)에서 커밋 삭제하기

로컬에서는 wrong commit이 삭제되었지만 원격 저장소인 깃허브에서는 아직 삭제되지 않았습니다.

이제 원격 저장소인 깃허브에서도 wrong commit을 삭제해 보겠습니다.
터미널에 git push -f origin [브랜치명]을 입력하면 깃허브에서도 로컬에서 삭제했던 wrong commit이 삭제됩니다.


+) 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만 남게 됩니다.


잘못된 내용이 있다면 댓글로 알려주세요!🤗

참고

profile
느려도 꾸준히

0개의 댓글