🚨 문제
깃에 올라가면 안 되는 파일을 .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 고수들은 어찌저찌 문제를 해결하겠지만,
나같이 초보자들은;;;
'에러' 카테고리의 다른 글
[에러] cannot construct instance of `...` & resolved [java.lang.nullpointerexception] (0) | 2023.01.17 |
---|---|
[에러] 회원 가입 & 로그인 에러 처리에 대한 고찰 (0) | 2023.01.17 |
[SpringBoot 에러] (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator) (0) | 2023.01.08 |
Spring Boot와 MySQL 연동 방법 (0) | 2023.01.01 |
LeetHub 빨간체크 연동 에러 이슈 (0) | 2022.12.19 |