이것저것
[Git] git commit 삭제 방법 | 깃 커밋 삭제 방법
지나가는 이야기
2024. 10. 14. 12:48
728x90
반응형
git을 사용하다 보면 실수 등을 통해 만들어진 커밋 또는 커밋된 전체를 삭제가 필요할 때가 있다. git의 경우 파일을 삭제을 해도 다시 복구를 할 수 있기 때문에 특정 커밋을 삭제하거나 전체를 삭제해야 한다. 이번 글의 경우 커밋을 삭제하는 방법으로 전체를 삭제하는 방법, 최신 커밋 삭제 방법 이렇게 2가지를 설명한다.
# 전체 삭제 방법
전체 삭제하는 방법은 브랜치를 생성하여 삭제하는 방법이다.
$ git checkout --orphan temp_branch # temp_branch 브랜치 생성
$ git add -A # 전체 파일 add
$ git commit -m "Initial commit" # 커밋
$ git branch -D main # 기존 브랜치(main) 삭제
$ git branch -m main # 현재 브랜치(temp_branch) 이름 변경
$ git push origin main --force # 강제 푸시
위 사진과 같이 명령어를 실행하여 브랜치를 새로 만들고 삭제하게 되면 새로 만들게 된 브랜치의 경우 커밋 기록이 없어 새롭게 할 수 있다.
# 최신 커밋 삭제 방법
최신 커밋 삭제의 경우 전체삭제와 다르게 간단한 편이며, 변경 사항을 유지할지 아니면 변경사항을 삭제할지에 따라 다르다.
$ git reset --hard HEAD~3 # 방법1. 최신 3개 이전의 커밋 삭제(변경 사항 삭제)
$ git reset --soft HEAD~3 # 방법2. 최신 3개 이전의 커밋 삭제(변경 사항 유지)
$ git push origin main --force # 강제 푸시
위 명령어와 같이 삭제하는 방법은 2개 있다.
--hard 옵션을 주게 되면 현재 상태의 변경 사항이 삭제가 된다. 즉 완전히 이전 커밋 상태도 되돌아가는 것이며,
-- soft 옵션의 경우 변경 사항 유지로 현재 상태를 그대로 유지하면서 원하는 개수만큼 커밋을 삭제할 수 있다.
728x90
반응형