git rm
git rm fileName
git rm --cached fileName #폴더 인 경우 -r 혹은 -rf 옵션을 추가
git rm => 원격 저장소와 로컬 저장소에 있는 파일을 삭제
git rm –cached => 로컬 저장소에 있는 파일은 삭제하지 않고 원격 저장소에 있는 파일만 삭제
사용 예 (안좋은)
위 처럼 깃 허브에 이미 올라간 application.yml
파일을 지우도록 해 보겠습니다. 안좋은 예라고 한 이유는 아래에 따로 기술 하도록 할 것인데 현재 제가 지우려고 하는 파일과 같은 유형의 파일이 아니라면 알맞은 예가 되긴 할 겁니다.
git rm --cached fileName
git add fileName
git commit
git push
이와 같이 수행 하면
깃 허브 상에서 파일이 사라 진 것을 확인 할 수 있습니다.
--cached
옵션을 주었기 때문에 로컬에는 파일이 그대로 있습니다.
사실 안좋은 예라고 한 이유는 파일 이름을 보시고 눈치 채신 분들도 있겠지만 오픈된 공간에 공개를 안 하고 싶은 내용이 들어간 파일을 지워보는 연습을 하려고 git -rm
을 사용 해 봤는데 당연히
아래처럼 해당 파일에 대한 커밋 이력이 다 남아 있습니다.
일단 예상을 하고 연습용으로 push하고 삭제를 한 부분이라 문제의 소지가 없는 파일을 올린 것이기 때문에 현재 저 같은 경우는 문제 없지만 이미 올라간 내용 자체를 싹다 없애고 싶은 분이라면 다른 방법을 찾아 보실 것을 추천 드립니다.
추가로
.gitinore
를 통해서 이미 올라간 파일을 없애고 싶은 경우도 위에 기술 한 방법에서 .gitignore
을 갱신한 다음에 git rm --cached
과정을 진행 하시면 됩니다.