.gitignore에 언급된 모든 파일을 삭제하세요.

.gitignore에 언급된 모든 파일을 삭제하세요.

내 파일에 다음 항목이 있는데 .gitignore삭제하고 싶습니다. 그 이유는 이 파일들이 TeX 컴파일 중에 생성된 임시 정크 파일이고 삭제할 수 있기를 원하기 때문입니다.

어떻게 해야 하나요?

답변1

git clean -Xdf

자본으로 -X,git clean 오직일치하는 파일을 삭제합니다 .gitignore.

를 사용하면 -d일치 git clean하는 디렉터리 전체도 삭제됩니다 .gitignore.

을 사용하면 -f경고 git clean하는 대신 실제로 콘텐츠가 삭제됩니다. 그래도 조심하세요. 다른 이유(예: 개인 direnv구성) 가 있을 수 있으므로 .gitignored명령을 실행하기 전에 명령이 수행하는 작업을 항상 이해해야 합니다.

공유해주신 @Kusalananda에게 특별히 감사드립니다 git clean.


git clean대안으로, 심볼릭 링크 디렉터리가 포함된 종속성 폴더가 있고 모든 것을 재귀적으로 삭제하고 싶지 않은 경우~에이러한 디렉터리의 경우 다음과 같은 더 긴 형식을 사용할 수 있습니다.

git ls-files --others --ignored --exclude-standard --directory | head -c -1 | tr '\n' '\0' | xargs -0 -r rm -r

git ls-files이 옵션을 사용하면 동일한 디렉터리를 나열 git clean -Xdn하지만 컴퓨터에서 더 쉽게 읽을 수 있습니다.

head -c -1후행 개행 바이트를 자릅니다.

tr '\n' '\0'모든 개행 문자를 NULs로 변환합니다.

xargs -0 -r rm -r파일과 디렉터리를 삭제합니다. 구분자를 -0만드십시오 NUL. -r빈 입력을 건너뛰게 합니다(경고: 이것은 이식할 수 없는 GNU 확장입니다).

답변2

git clean -X -f -n

git clean -X.gitignore으로 삭제 -n하면 파일이 삭제되지 않고 테스트 실행만 수행되고 파일이 보고됩니다.회의삭제되었습니다.

-d무시된 디렉터리도 제거하기 위해 추가되었습니다 .

그렇지 않은 경우 -X추적되지 않은 파일을 삭제합니다(그러나 무시된 파일은 삭제하지 않음).

바라보다 git clean --help.

답변3

귀하의 경우 파일 항목이 .gitignore다음으로 시작하지 않으면 !다음 줄이 작동합니다.

while read -r entry;do rm -rf ${entry}; done < .gitignore

관련 정보