npm을 사용할 때, 여러 가지 패키지들을 다운받아 사용하게 된다. 이 패키지들은 node_modules라는 폴더에 설치되며, 수많은 파일로 이루어져 있어 원격 저장소에 업로드하지 않는 것이 일반적이다.
node_modules를 업로드하지 않기 위해서는 .gitignore라는 파일에 추가해야 한다. 이때 이미 node_modules가 원격 저장소에 업로드된 상태라면 .gitignore에 해당 파일을 추가해도 원격 저장소에서 사라지지 않는다.
왜냐하면 .gitignore은 commit하는 당시에 해당 파일을 트래킹할지 말지를 결정하기 때문에 이미 업로드된 파일에 대해서는 트래킹을 하지 않아도 업로드된 상태로 남아있기 때문이다. 그래서 실수로 업로드된 node_modules를 직접 삭제해야 한다.
git rm : 원격, 로컬 저장소에서 모두 삭제
git rm --cached : 원격 저장소에서만 삭제
git rm --cached -r node_modules
(여기서 -r은 하위 폴더에도 적용하겠다는 옵션이다.)
그리고 commit, push를 하면 해당 파일이 정상적으로 지워진 것을 확인할 수 있다.