gitignore에 등록하고 github에 push 했는데 등록한 파일이 올라가던 현상

항상 졸린사람·2023년 9월 18일
0

gitignore에 등록했는데 파일이 올라가는 문제

이번 포스팅은 이전에 vercel에 오류가 생기던 문제와 같다면 같은 문제지만 해당 주제로 따로 포스팅을 한번더 할까 하여 작성한다. 이번 문제를 설명하기 위해 이번에는 아래와 같이 상황을 좀 가정하고 진행하고 이야기 하겠다

  • 개발을 하던중 push 해보니 env 파일과 같은 환경변수 파일이 올라간 것을 확인했다
  • gitigonre에 .env를 추가하고 다시 add commit push를 하고 확인해보니 env 파일이 여전히 같이 올라와있다.

gitignore에 등록했는데 왜 같이 github에 올라가는걸까?

이 문제는 다들 한번씩은 겪는 문제라고 생각한다. 우선 결론적으로 이유부터 말하자면 git에서 ignore에 등록하기전 add commit을 해두면 해당 파일은 캐싱처리가 되기 때문이다 그럼 어째서 캐싱 처리를 해서 이렇게 귀찮게 문제가 발생하게 만든걸까? 하는 생각을 할 수 있는데 아래에서 좀더 자세히 알아보자

git에서 cache를 하는이유

대규모 프로젝트가 아니더라도 개발을 하다보면 생기는 폴더 , 파일이 한 두가지가 아니다 만약 이런 폴더, 파일을 cache 처리를 하지 않고 모두 add 할때마다 staging area로 등록한다면 우리는 어떤 파일이 변경, 어떤 폴더가 생성, 삭제 되었는지 확인하기가 굉장히 힘들것이다. 그리고 그 상태로 github와 같은 원격 저장소에 올리게 된다면 캐싱되지 않은 상태에서 기존에 올리고 변경되지 않은 파일들 까지 모두 올라가게 되어 변경내역을 추적하기가 굉장히 어렵게 된다.

그럼 gitignore에 등록하고 나서 캐시를 삭제하기 위해서는 어떻게 하면 될까?

해당 부분이 이전 vercel 오류를 해결하면서 다뤘던 부분인데 다시 짚고 넘어가자면 아래와 같이 명령어를 입력하여 캐시를 모두 지우고 add commit을 하여 다시 반영하면 되는 것이다( 반드시 작업을 하기 전에 cache를 지우고 commit후 작업하자 작업이 끝나고 캐시를 지우면 원격 저장소에 파일이랑 폴더를 한번 모두 올려야 하는 상황이 생긴다.)

git rm -r cached .
profile
최대한 쉽고 한국인이 보기 편한 코딩 Velog

0개의 댓글