• git rm --cached 파일 삭제 :: 마이구미
    GitHub 2017. 1. 20. 20:59
    반응형

    이번 글은 Github 저장소에 있는 파일을 삭제하는 법을 다뤄본다.

    이게 무슨 말인가? 예를 들어보겠다.


    git rm


    상황을 들어보자.

    작업이 완료되어 저장소에 push를 날렸다.

    하지만 모르고 작업에 필요했지만 올리지 않아도 되는 private이라는 폴더를 올려버렸다.

    그래서 폴더를 삭제하고, 다시 push를 날렸다.

    하지만 Github에서는 삭제되지 않았다.


    폴더를 리팩토링하고 난 후에도 마찬가지이다.

    삭제 및 이동을 하고 push를 할 시 Github에 있는 폴더는 유지된 채 바뀐 폴더가 새로 생성된다.


    원격 저장소에 이미 파일은 저장되어있다.

    로컬에서 삭제만 한다고 해서 원격 저장소에서 삭제가 이루어지지 않는다.

    이 경우 git 명령어를 통한 파일 삭제 후 push를 해줘야한다.


    $ git rm <fileName>

    $ git rm --cached <fileName>

    위의 git 명령어를 통해 폴더나 파일을 삭제하면 된다.

    --cached 는 rm 명령어의 옵션이다.

    --cached의 유무에 따라 차이점을 알아보자.


    정의는 아래와 같다.


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

    git rm --cached => 원격 저장소에 있는 파일을 삭제한다. 로컬 저장소에 있는 파일은 삭제하지 않는다.


    정의 그대로 --cached 옵션을 넣을 경우에는 로컬 저장소에 있는 건 삭제되지 않는다.

    즉, 로컬 저장소에는 존재하지만, 원격 저장소에 올라가진 않는다.

    생각해보면 어떤 경우 쓰는지 모르겠고, 필요없는 옵션이라고 볼 수 있다.

    예를 들어 작업시에만 쓰는 파일이나 로그 등 작업할 땐 필요하지만 Github에 안 올려도 되는 것들이 있다고 가정하자.

    그렇다는 건, 작업할 때마다 올리지 않아도 되는 것들을 항상 고려해야한다.

    즉 한가지 예로, Github에는 반영되지 않기 위해 git rm 명령어를 통해 삭제 해주는 작업을 말한다.


    이런 경우를 위해 --cached 옵션을 통해 이런 불필요한 과정이 필요하지 않게 할 수 있다는 것이다.

    그렇기에 일반적으로 git rm 명령어를 쓸 때에는 --cached 옵션을 사용한다.


    아무튼 git rm 명령어를 통해 Github 저장소에 있는 private 폴더를 삭제할 수 있게 되었다.


    git rm 삭제




    Github Help 페이지 파일 삭제 관련.

    https://help.github.com/articles/removing-files-from-a-repository-s-history/


    How can I delete a file from git repo?

    http://stackoverflow.com/questions/2047465/how-can-i-delete-a-file-from-git-repo

    반응형

    댓글 0

Designed by Tistory.