[GitHub 100일 챌린지] Day 65 - git clean 정리하기
100일 챌린지 Day 65 - Git이 추적하지 않는 임시 파일을 안전하게 정리하는
git clean을 배웁니다.
배울 내용
git clean이 지우는 대상- 안전하게 미리보기 후 삭제하는 방법
- 빌드 산출물과 임시 파일 정리 전략
1. git clean이란?
git clean은 Git이 추적하지 않는 파일, 즉 untracked file을 작업 디렉터리에서 삭제하는 명령어입니다.
1
2
3
4
git status --short
# ?? debug.log
# ?? dist/
# ?? temp.txt
위처럼 ??로 보이는 파일은 아직 Git에 추가되지 않은 파일입니다. git restore는 추적 중인 파일의 변경을 되돌릴 때 쓰고, git clean은 추적하지 않는 파일을 정리할 때 씁니다.
주의:
git clean으로 지운 파일은 Git 기록에 없기 때문에 되돌리기 어렵습니다. 항상 미리보기부터 하세요.
2. 안전한 기본 사용법
가장 먼저 -n 또는 --dry-run으로 삭제될 파일을 확인합니다.
1
2
3
4
5
6
# 실제 삭제하지 않고 목록만 확인
git clean -n
# 출력 예시
# Would remove debug.log
# Would remove temp.txt
목록을 확인한 뒤 정말 지워도 된다면 -f 옵션을 사용합니다.
1
2
# untracked 파일 삭제
git clean -f
디렉터리까지 정리하려면 -d를 함께 씁니다.
1
2
# untracked 파일 + 디렉터리 삭제
git clean -fd
자주 쓰는 순서는 아래처럼 기억하면 됩니다.
1
2
3
git status --short
git clean -nd # 미리보기
git clean -fd # 실제 삭제
3. ignored 파일까지 정리하기
기본 git clean -fd는 .gitignore에 들어간 파일을 지우지 않습니다. 예를 들어 node_modules/, .next/, dist/ 같은 파일은 ignored 상태라 남아 있을 수 있습니다.
1
2
3
4
5
# ignored 파일까지 미리보기
git clean -ndx
# ignored 파일까지 삭제
git clean -fdx
-x는 강력합니다. 의존성 폴더, 빌드 캐시, 로컬 설정 파일까지 삭제될 수 있으니 정말 깨끗한 재설치가 필요할 때만 사용하세요.
ignored 파일 중 일부만 정리하고 싶다면 -X를 사용할 수 있습니다.
1
2
# .gitignore에 걸린 파일만 삭제
git clean -fdX
| 옵션 | 의미 | 사용 상황 |
|---|---|---|
-n | 미리보기 | 항상 먼저 실행 |
-f | 실제 삭제 | 목록 확인 후 실행 |
-d | 디렉터리 포함 | 빌드 폴더 정리 |
-x | ignored 포함 전체 삭제 | 완전 초기화 |
-X | ignored 파일만 삭제 | 캐시/빌드 산출물 정리 |
4. 실전 시나리오
시나리오 1: 실험 파일 정리
1
2
3
4
5
touch test-a.txt test-b.txt
git status --short
git clean -n
git clean -f
커밋할 필요 없는 실험 파일을 빠르게 치울 수 있습니다.
시나리오 2: 빌드 결과물 제거
1
2
3
4
5
npm run build
git status --short
git clean -nd
git clean -fd
빌드 폴더가 .gitignore에 없다면 위 명령으로 정리됩니다. .gitignore에 포함된 빌드 산출물까지 지우려면 git clean -fdX 또는 git clean -fdx를 검토합니다.
시나리오 3: 저장소를 깨끗한 상태로 되돌리기
1
2
3
git restore .
git clean -nd
git clean -fd
추적 중인 파일의 수정은 git restore .로 되돌리고, 추적하지 않는 파일은 git clean으로 정리합니다.
정리
완료 체크:
git clean -n으로 삭제 대상을 미리 확인할 수 있다git clean -fd로 untracked 파일과 디렉터리를 정리할 수 있다-x와-X의 차이를 설명할 수 있다
핵심 요약:
git clean -n- 삭제 대상 미리보기git clean -f- untracked 파일 삭제git clean -fd- untracked 디렉터리까지 삭제git clean -fdx- ignored 파일까지 포함해 강력 삭제
다음: Day 66 - Git Stash →
