2019-06-22 Git에 잘못된 파일 지우기

gitignore에 대한 이슈

github을 쓰면서 필요없는 디렉토리들까지 올라가는 경우가 있다. 필요없는 파일, 디렉토리들은 gitignore에서 관리를 하는데, 계속 무시가 되나 싶을때가 있다. 대표적으로 .idea/workspace.xml이다. 분명 gitignore에 파일을 등록을 했는데, 왜 매번 나를 괴롭히나 싶었다. 이유를 찾아보니 github에 이미 올라가있기떄문이란다… 이걸 어떻게 해결을 해야될까? github에서 파일을 지우면 된다고 잘 지웠다. 문제는 이 뒤에 생겼다. node_modules가 통으로 올라갔고, 코드 정렬을 통으로하다가 node_modules에 있는 몇천개의 파일들이 다 올라갔다. 그리고 이걸 github에서 뺄때 어찌해야됬나… 싶었다. 수동으로 다 뺄수도 없는거고… 그러다가 git rm [filename]이라는 명령어를 알게되었다.

git rm [filename] vs git rm –cached [filename]

  • cached옵션을 붙이면 로컬에서는 삭제를 안하고 원격저장소에 있는 파일만 삭제를 한다.
  • git rm .idea/workspace.xml 파일을 삭제를 했다.
  • .idea 디렉토리를 삭제하기 위해 git rm –cached -r .idea/를 통해 .idea 디렉토리를 통째로 날렸다.
  • /node_modules 역시 위와 같은 방법으로 삭제를 했다.

오늘의 배운점 : git을 좀 더 잘쓰자… 이번 사례를 덕분에 .gitignore에 대해 좀 더 명확히 알 수 있었다. 특히 .idea/workspace.xml파일의 경우 하나였기때문에 늘 무시를 했던 부분이 있었는데, 이번에 7000개가 넘는 node_modules파일들 때문에 이 부분에 대해서 깊이 배우게 되었다.

Written on June 22, 2019