처음에 .gitignore를 잘못 설정해서 이미 git이 추적(tracking)하고 있는 파일(예: 캐시파일, 환경설정 등)이 있다면, .gitignore를 나중에 수정해도 이미 추적 중인 파일은 자동으로 무시되지 않는다. 이럴 때는 아래 절차로 해결할 수 있다.

Git에서 불필요한 파일 추적 해제 이미지


1. .gitignore에 무시하고 싶은 파일(또는 디렉토리)을 추가한다

예시:

# .gitignore
*.log
__pycache__/
.env

2. 이미 추적되고 있는 파일을 untrack (즉, git이 더이상 추적하지 않게 만들기)

예를 들어, 이미 커밋된 .env 파일을 git이 무시하게 하고 싶으면,
아래 명령어를 실행하면 된다.

git rm --cached .env
  • --cached 옵션은 로컬 파일은 남겨두고, git에서만 추적을 해제하는 역할이다.

  • 폴더라면(예: __pycache__/) 다음과 같이:

    bash git rm -r --cached __pycache__/


3. 변경사항 커밋하기

git add .gitignore
git commit -m "Update .gitignore and remove unwanted tracked files"

이렇게 하면, 이후로는 해당 파일/폴더가 git에서 무시된다. (단, 이미 커밋된 과거 이력에는 남아있지만, 앞으로는 추적되지 않는다.)


여러 파일을 한 번에 untrack 하고 싶다면?

모든 .gitignore에 추가한 파일들을 한 번에 untrack하려면 아래처럼 할 수 있다:

git rm -r --cached .
git add .
git commit -m "Apply .gitignore to existing files"
  • 이 방법은 모든 파일을 다시 스테이징하므로, 신중히 사용한다! (커밋이력 꼬이지 않게, 변경사항 잘 확인!)

참고/팁

  • git status로 untracked 상태가 잘 적용됐는지 확인 가능!

  • 이미 remote(예: GitHub)에 올라간 민감 파일은 완전 삭제하려면 git filter-branch 또는 BFG Repo-Cleaner 등의 별도 도구가 필요하다.


작업 도중 실수로 추적된 파일 때문에 곤란했던 분들에게 도움이 되었길 바랍니다.
오늘도 깔끔한 Git 히스토리를 위해 한 걸음 더 나아가세요!