![Git - 삭제된 파일 제거](https://linux55.com/image/2215/Git%20-%20%EC%82%AD%EC%A0%9C%EB%90%9C%20%ED%8C%8C%EC%9D%BC%20%EC%A0%9C%EA%B1%B0.png)
나는 이 간단한 git 별칭을 사용하고 있습니다.
rmdel = "!git rm $(git ls-files -d)"
이는 "삭제된 항목 삭제"를 의미합니다. 즉, 파일 시스템에서 삭제된 모든 파일을 준비 영역에서 제거합니다. 파일에 공백이 포함되어 있지 않으면 제대로 작동합니다. 그러면 분명히 목록도 분할되어 파일 이름이 존재하지 않게 됩니다.
IFS를 사용하여 해결하는 것이 가능할 것이라고 생각했지만 IFS가 cygwin에서 작동하지 않는 것 같습니다. 다음과 같은 것이 의심됩니다.
rmdel = "!IFS=' ' git rm $(git ls-files -d)"`
완전히 작동합니다. 더 좋은 아이디어가 있나요?
답변1
ls-files
이 목적을 위해 설계된 스위치가 있습니다 -z
.
-z \0 line termination on output.
xargs
공백 대신 널 문자로 항목을 구분할 수 있는 스위치가 있습니다 -0
. 이를 결합하면 다음과 같은 결과를 얻을 수 있습니다.
$ git ls-files -dz | xargs -0 git rm