캐시 제거
개요
.gitignore에 파일을 추가했지만 이미 Git에서 추적 중인 파일들을 추적 해제하고 싶을 때 사용하는 명령어들에 대해 설명합니다. 이 과정을 통해 불필요한 파일들이 Git 저장소에 포함되지 않도록 할 수 있습니다.
명령어 설명
다음 세 가지 명령어를 순서대로 실행하여 Git 캐시를 정리합니다.
git rm -r --cached .
git add .
git commit -m "fixed untracked files"
1. git rm -r --cached .
- 역할: 현재 디렉터리(
.
)와 그 하위의 모든 파일과 폴더를, Git의 인덱스(스테이징 영역)에서만 제거합니다. - 중요: 파일은 실제로 삭제되지 않습니다. 로컬 폴더에는 그대로 남아있고, Git만 이 파일들에 대한 추적을 해제합니다.
tip
.gitignore
를 추가했음에도 이미 추적되고 있던 파일(예: .env
, node_modules
등)을 Git에서 추적 해제하고 싶을 때 주로 사용됩니다.
2. git add .
- 역할: 현재 디렉터리를 기준으로 모든 변경 사항을 스테이징 영역에 올립니다.
- 동작: 앞 단계에서 추적이 해제된 파일 중에서,
.gitignore
에 포함되지 않은 파일들만 다시 스테이징됩니다. - 일반적으로
.gitignore
에 포함된 파일은 다시 add되지 않습니다.
3. git commit -m "fixed untracked files"
- 역할: 스테이징된 모든 변경 사항을 **"fixed untracked files"**라는 메시지와 함께 하나의 커밋으로 저장합니다.
- 이 커밋에는 Git 추적 영역에서 제외된 파일 목록과 새로 추가되거나 수정된 파일 정보가 반영됩니다.
전체 흐름
잘못 추적된 파일을 .gitignore
로 관리하고 싶을 때 다음 순서대로 작업합니다.
.gitignore
파일 수정/생성하여 원하는 파일 패턴을 추가git rm -r --cached .
로 인덱스에서 모든 파일 추적 해제git add .
로 변경된 내역을 다시 스테이징 영역에 추가git commit -m "fixed untracked files"
로 커밋하여 변경사항 확정
danger
이 과정 이후에는 .gitignore
에 기술된 파일/폴더는 더 이상 Git에서 추적되지 않으며, 원격 저장소에도 푸시되지 않습니다.