[git] commit 취소 & cache 삭제

JAsmine_log·2025년 2월 26일

commit 취소

commit은 잘 되었지만, 실제로 파일이 크거나 하면 synch 나 push가 되지 않는다.
(rule 위반) 이때, commit을 다시 되돌리고, 파일을 정리해 보자.

  1. 마지막 커밋을 유지하되 수정하고 싶을 때
  • 변경 사항을 유지한 채로 기존 커밋을 수정할 수 있습니다.
git commit --amend
  1. 마지막 커밋을 취소하고 변경 사항은 남겨두고 싶을 때
    (즉, 커밋을 없애고 파일은 다시 staged 상태로 남겨두고 싶을 때)
  • 마지막 커밋을 취소하지만 파일 변경 내용은 유지된다.
git reset --soft HEAD~1
  1. 마지막 커밋을 취소하고 변경 사항도 없애고 싶을 때
    (즉, 마지막 커밋을 삭제하고, 해당 커밋에서 변경한 파일도 unstaged 상태로 만들고 싶을 때)
    • 커밋을 취소하고, 변경 내용도 unstaged 상태로 복구된다.
git reset --mixed HEAD~1
  1. 마지막 커밋을 취소하고 변경 사항을 완전히 삭제하고 싶을 때
    (즉, 해당 커밋에서 했던 모든 변경 사항을 없애고 싶을 때)
  • 🚨 주의: 변경 사항이 완전히 사라지므로 신중하게 사용
git reset --hard HEAD~1
  1. 원격 저장소에 이미 푸시한 커밋을 되돌리고 싶을 때
    (만약 이미 git push를 실행했다면, 이를 취소하려면 -f 옵션이 필요함)
    ** 🚨 원격 저장소에 영향을 줄 수 있으므로 협업 중이라면 신중히 사용해
git reset --soft HEAD~1
git push --force
  1. 특정 커밋을 완전히 되돌리고 싶을 때 (Revert 사용)
  • 이 방법은 새로운 "되돌리는 커밋"을 생성하므로, 원래 커밋 기록을 보존하면서도 변경 사항을 취소할 수 있다.
git revert <commit-hash>

Git에서 특정 파일 강제 삭제

  • .gitignore에 추가했더라도 이미 Git이 추적 중이면 제거되지 않음.

이때는 아래 명령어를 사용해서 Git의 추적에서 제거해야 한다.

git rm --cached <파일명>.db

예를 들어 data.db를 삭제하려면:

git rm --cached data.db

만약 특정 폴더 안의 모든 .db 파일을 삭제하려면:

git rm --cached -r *.db

🚨 주의
--cached 옵션을 사용하면 파일은 로컬에 남아 있지만, Git의 추적에서는 사라짐.

다시 commit

git commit -m "Remove large file"
git push origin master
profile
Everyday Research & Development

0개의 댓글