숏컷 코드
# 삭제될 파일 미리 보기
git clean -n
# untracked 파일 삭제
git clean -f
# untracked 디렉터리까지 삭제
git clean -fd
# .gitignore에 걸린 파일까지 삭제
git clean -fdx| 상황 | 먼저 볼 명령 |
|---|---|
| 삭제 후보만 확인 | git clean -n |
| 추적하지 않는 파일만 삭제 | git clean -f |
| 추적하지 않는 디렉터리까지 삭제 | git clean -fd |
| ignored 파일 포함 전체 정리 | git clean -fdx |
| 대화형으로 골라 삭제 | git clean -i |
정리 범위
git clean은 Git이 추적하지 않는 파일을 삭제합니다. 이미 커밋되었거나 스테이징된 파일의 수정 내용은 대상이 아닙니다. tracked 파일을 마지막 커밋 상태로 되돌리는 명령은 git restore이고, untracked 산출물이나 임시 파일을 없애는 명령이 git clean입니다.
git status --short
# M src/app.js tracked 파일 수정
# ?? tmp/output.log untracked 파일
git clean -n
# Would remove tmp/output.log-d를 붙이지 않으면 untracked 디렉터리는 기본 삭제 대상에서 빠질 수 있습니다. 빌드 산출물이 폴더 단위로 생기는 프로젝트에서는 git clean -nd로 먼저 확인한 다음 git clean -fd를 실행하는 흐름이 안전합니다.
git clean -nd
git clean -fdignored 파일 포함 여부
.gitignore에 걸린 파일은 기본적으로 보존됩니다. node_modules, .next, dist, coverage처럼 다시 만들 수 있는 산출물까지 지우려면 -x를 붙입니다. 반대로 ignored 파일은 그대로 두고 일반 untracked 파일만 지우려면 -x를 붙이지 않습니다.
# ignored 파일은 유지
git clean -fd
# ignored 파일까지 삭제
git clean -fdx-X는 ignored 파일만 삭제합니다. 저장소 안에 임시 메모나 생성 중인 파일이 untracked 상태로 섞여 있고, 빌드 캐시만 지우려는 경우에 쓸 수 있습니다.
git clean -nX
git clean -fX언제 쓸까
브랜치를 바꿨는데 예전 빌드 산출물이 남아 테스트를 오염시키는 경우 git clean -fd가 빠릅니다. 의존성이나 빌드 캐시까지 다시 만들고 싶다면 프로젝트 특성을 확인한 뒤 git clean -fdx를 선택합니다.
git switch feature/new-api
git clean -nd
git clean -fd
npm run build코드 생성 도구를 여러 번 돌린 뒤 결과물을 처음 상태로 맞출 때도 유용합니다. 다만 생성 파일 중 일부를 실제 커밋할 계획이라면 git add로 먼저 추적 대상으로 올리거나 별도 위치로 옮겨 두어야 합니다.
주의할 점
git clean -fdx는 .gitignore로 보호하던 파일까지 삭제합니다. 로컬 DB, 환경 파일, 수동으로 받은 대용량 자료처럼
다시 만들기 어려운 파일이 저장소 안에 있다면 실행 전에 반드시 git clean -ndx로 목록을 확인하십시오.
git clean은 삭제한 untracked 파일을 Git 히스토리에서 복구할 수 없습니다. 커밋된 적이 없는 파일은 Git 객체 데이터베이스에 없기 때문입니다. 삭제 후보가 조금이라도 애매하면 -n 또는 -i로 확인한 뒤 실행하는 흐름을 기본값으로 두는 편이 안전합니다.
git clean -ndx
git clean -i참고 링크
1 sources