Git 설명서 - (4) 파일 삭제
06 Aug 2017 | git파일 삭제
파일 삭제는 git rm 명령어를 이용해서 할 수 있습니다. 이 명령어를 수행하면 현재 폴더에 있는 파일도 같이 지워 줍니다.
만약 git rm이 아닌, rm 명령어로 로컬에 있는 파일만 삭제한 경우라면, git status에서 다음과 같은 결과를 볼 수 있습니다.
$ rm snowdeer.cpp
$ git status
On branch master
Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)
        deleted:    snowdeer.cpp
no changes added to commit (use "git add" and/or "git commit -a")
이 경우는 파일 삭제한 상태가 아직 Staged 상태이지 않기 때문에 git add 명령어를 이용해서 파일 삭제 상태를 Staged 하게 만들어줘야 합니다.
git rm으로 삭제한 경우는 삭제된 파일은 Staged 상태가 되기 때문에 위 단계를 건너뛸 수 있습니다.
물론 Staged 상태에서 commit까지 해주어야 파일 삭제가 Git에 완전히 반영이 됩니다.
로컬 파일은 남기고 Git에서만 삭제하기
이런 경우는 보통 .gitignore 파일에 추가하는 작업을 빼먹었거나 실수로 불필요한 파일을 Git에 등록했을 때 필요한 작업입니다.
--cached 옵션을 사용하면 로컬에 있는 파일은 그대로 둔채 Git의 파일만 삭제를 할 수 있습니다.
git rm --cached snowdeer.bak
복수의 파일이나 폴더 삭제
패턴을 이용하여 여러 개의 파일이나 폴더를 삭제할 수도 있습니다.
$ git rm log/\*.log
위와 같은 명령어를 사용하면 ‘log’ 폴더 아래에 있는 ‘.log’ 확장자를 가지는 파일들을 모두 삭제합니다. * 앞에 \를 붙여야 합니다. (Windows 커맨드에서 실행할 때는 \를 붙이지 않습니다.)
$ git rm \*~
이와 같은 코드는 ~으로 끝나는 파일을 모두 삭제합니다.
