오늘은 깃허브에 이미 push 된 커밋을 삭제하는 방법을 알아보자.
먼저 Reset 을 사용해서 로컬 깃의 커밋 상태를 되돌린다.
git reset --hard HEAD~3
소스트리는 다음을 이용해서 reset 이 가능하다.
그러면 해당 커밋으로 변경이 된다.
물론, Reset 을 했다고 하더라도 checkout 한 것 처럼 파일이 교체되진 않는다. ( 이유는 모르겠다..)
따라서 커밋 위치만 바뀌었을 뿐, 파일들은 커밋하지 않은 변경사항으로 남는다.
그렇기 때문에, 커밋하지 않은 변경사항을 날려주어야 커밋이 가능하다.
git reset
git checkout .
git clean -fdx
위 명령어를 진행하면 커밋하지 않은 변경사항이 모두 날아간다.
그리고 , 이 상태에서 git push 를 진행하면 푸쉬 포인터가 이전 상태여서 푸쉬가 되지 않는다.
git push -f
명령어를 통해서 강제로 현재 로컬 깃 상태를 원격 저장소에 적용한다.
마지막으로 git pull 을 받는다.
실제 깃허브에 들어가서 원격 저장소의 커밋이력을 보면 사라져있는 것을 알 수 있다.
'깃' 카테고리의 다른 글
[깃] 커밋하지 않은 변경 사항 제거 (0) | 2022.11.09 |
---|