포스트

[GitHub 100일 챌린지] Day 65 - git clean 정리하기

[GitHub 100일 챌린지] Day 65 - git clean 정리하기

100일 챌린지 Day 65 - Git이 추적하지 않는 임시 파일을 안전하게 정리하는 git clean을 배웁니다.

배울 내용

  1. git clean이 지우는 대상
  2. 안전하게 미리보기 후 삭제하는 방법
  3. 빌드 산출물과 임시 파일 정리 전략

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


이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.