2020-11-12 18:59:42

.gitignore를 잘 설정해놓지 않았을 경우, 불필요한 폴더나 파일들이 원격저장소인 github에 올라가곤 합니다. 그런 경우에 그 폴더들과 파일들을 지워줘야 합니다. 오늘은 그 방법에 대해 다루도록 하겠습니다. 

 

우선 저는 고의적으로 불필요한 폴더와 파일이 원격 저장소에 저장되게 해놨습니다.

 

 

원격저장소에 있는 unnessesary 폴더와 unnessesary.xlsx 파일을 지워보도록 하겠습니다.

 

깃헙에 잘못 올라간 파일 또는 폴더 삭제 명령

폴더 또는 파일을 제거할 때 필요한 명령어는 다음과 같습니다. 

 

git rm --cached -r [폴더명 or 파일명]

 

여기서 --cached는 원격저장소의 폴더 또는 파일을 삭제한다고 알려주는 옵션입니다. 만약 --cached가 없으면 로컬저장소의 폴더 또는 파일도 삭제합니다. 그런데 로컬저장소에서는 꼭 필요한 파일이거나 폴더일 수 있기 때문에 잘 판단해서 --cached를 넣어줘야 합니다. 여기서 로컬저장소에서 꼭 필요한 파일이나 폴더에는 코드를 실행하기 위해 꼭 필요한 패키지, 라이브러리, 실행파일 같은 것들입니다. 그러나 개발환경이 조금씩 다른 다른 협업자들을 위해서 이러한 파일이나 폴더는 보내지 말아야 합니다.  

 

또한 -r은 폴더명이 주어졌을 때 recursive removal을 허용하게 해주는 옵션입니다. 폴더 안에 폴더 및 파일들이 존재할 때 모두 지워주겠다는 의미입니다. 

 

실습

그러면, 먼저 unnessesary라는 이름의 폴더부터 삭제해보겠습니다. 

 

git rm --cached -r unnessesary

 

 

또한 unnessesary.xlsx 파일도 삭제하겠습니다. 

 

git rm --cached -r unnessesary.xlsx 

 

 

이렇게만 해서 원격저장소에 있는 폴더와 파일이 즉각 삭제되는 것은 아니고 commit을 해주고, push를 해줘야 합니다. 

 

git commit -m "불필요한 폴더 및 파일 삭제"

 

 

git push -u origin main

 

 

자, 이제 삭제되었는지 확인해볼까요? 

 

 

불필요한 폴더와 파일이 잘 제거된 것을 확인하실 수 있습니다. 

 

참고자료

[1] gmlwjd9405.github.io/2018/05/17/git-delete-incorrect-files.html, heejeong Kwon, "[Git] Github에 잘못 올라간 파일 삭제하기"