원격 저장소에 추가 한 파일 지우기

Reading time ~1 minute

git rm

git rm fileName  

git rm --cached fileName  #폴더 인 경우 -r 혹은 -rf 옵션을 추가  

git rm => 원격 저장소와 로컬 저장소에 있는 파일을 삭제

git rm –cached => 로컬 저장소에 있는 파일은 삭제하지 않고 원격 저장소에 있는 파일만 삭제


사용 예 (안좋은)

.gitignore

위 처럼 깃 허브에 이미 올라간 application.yml 파일을 지우도록 해 보겠습니다. 안좋은 예라고 한 이유는 아래에 따로 기술 하도록 할 것인데 현재 제가 지우려고 하는 파일과 같은 유형의 파일이 아니라면 알맞은 예가 되긴 할 겁니다.

git rm --cached fileName  
git add fileName  
git commit  
git push   

이와 같이 수행 하면

.gitignore

깃 허브 상에서 파일이 사라 진 것을 확인 할 수 있습니다.

.gitignore

--cached 옵션을 주었기 때문에 로컬에는 파일이 그대로 있습니다.


사실 안좋은 예라고 한 이유는 파일 이름을 보시고 눈치 채신 분들도 있겠지만 오픈된 공간에 공개를 안 하고 싶은 내용이 들어간 파일을 지워보는 연습을 하려고 git -rm을 사용 해 봤는데 당연히

.gitignore

아래처럼 해당 파일에 대한 커밋 이력이 다 남아 있습니다.
일단 예상을 하고 연습용으로 push하고 삭제를 한 부분이라 문제의 소지가 없는 파일을 올린 것이기 때문에 현재 저 같은 경우는 문제 없지만 이미 올라간 내용 자체를 싹다 없애고 싶은 분이라면 다른 방법을 찾아 보실 것을 추천 드립니다.


추가로

.gitinore를 통해서 이미 올라간 파일을 없애고 싶은 경우도 위에 기술 한 방법에서 .gitignore을 갱신한 다음에 git rm --cached 과정을 진행 하시면 됩니다.