에러

git commit 삭제

ummchicken 2023. 1. 4. 14:09

🚨 문제

깃에 올라가면 안 되는 파일을 .gitignore에 추가하고 푸시했는데, 
반영 안 됐음.

 

뭐임? 

 

 

이동욱 개발자님 블로그 보니 Git의 캐시문제 때문이라고 한다.

git의 캐시가 문제가 되는거라 아래 명령어로 캐시 내용을 전부 삭제 후 다시 add All 해서 커밋하시면 됩니다.

(출처 : https://jojoldu.tistory.com/307)

 

그래서 이 블로그에 나와있는 대로 

git rm -r --cached .
git add .
git commit -m "fixed untracked files"

이렇게 해서 다시 푸시를 해보니 정상적으로 .gitignore처리가 됐다.

 

 

근데 문제는 commit 기록이 남아서 

거길 들어가보면 내가 어떤 파일을 올렸다가 .gitignore 처리를 해서 다시 내렸는지 

볼 수 있는 것이었다ㅠㅠ 

(.gitignore 처리를 해도 결국 commit 기록으로 어떤 파일(내용) 올렸다 내렸는지 볼 수 있음ㅠ)

 

 

그래서 깃 저장소를 끊고 다시 레포를 파서 연동을 했는데... 

그건 근본적인 해결책이 되지 않았다.

 

말 그대로 깃 저장소만 변경이 된 것이지, 커밋 기록은 그대로 남아있었기 때문.

 

즉, 커밋 기록을 삭제하는 것이 근본적인 해결 방법이었던 것이다.

 

그래서 다시 구글링...

 

 

커밋을 삭제하는 방법을 찾아서 했는데, 적용이 안 되는 것이다.

git reset HEAD^~2

이 명령어 말이다ㅠ 

(뒤에 설명 더 썼지만 미리 얘기해 보자면, 

윈도우 기준 : git reset HEAD^~2 말고, git reset HEAD~2 명령어로 하면 됨.

이건 최근 커밋 두 개를 삭제하는 것.)

 

 

암튼 얘기를 계속 하자면 

 

일단 본인이 연동해놓은 git 프로젝트에 가서 

git log

를 친다.

 

commit 기록이 나올 것이다.

 

난 거기서 최근 커밋 2개를 삭제하고 싶었다.

 

구글링 해서 나온 방법으로 안 됐고, 어떤 댓글을 보고 해결했다.

 

 

💡 최근 commit 1개 삭제

git reset HEAD~1

 

아 원래 두 개 한꺼번에 삭제해야 해서 

git reset HEAD~2

를 해야 하는데, HEAD~1으로 잘못 누름;;;

 

 

암튼, git reset HEAD~1 이걸로 최근 커밋 한 개 삭제했고, 

git reset HEAD~1 한번 더 해서 최근 커밋 한개, 

그러니까 총 최근 커밋 2개를 삭제했다.

 

그리고 .gitignore 처리를 해야 하는 파일의 내용을 

메모장에 복사해놓고, 아무 문구나 넣어서 다시 커밋하고 푸시해 봤다.

이번엔 다행히 gitignore가 제대로 됐다.

 

 


 

⭐ 결론

앞으로 조심할 게 생겼다.

ignore 처리를 해야 할 파일이 생기면 
바로 커밋하지 말고, 테스트용 문구로 커밋과 푸시를 먼저 해본 다음, 
제대로 gitignore 처리가 된 걸 확인하면 
다시 원래 내용을 넣는 걸로... 

 

아 git도 못 믿겠네. 

물론 git 고수들은 어찌저찌 문제를 해결하겠지만, 

나같이 초보자들은;;;