처음에 .gitignore
를 잘못 설정해서 이미 git이 추적(tracking)하고 있는 파일(예: 캐시파일, 환경설정 등)이 있다면, .gitignore를 나중에 수정해도 이미 추적 중인 파일은 자동으로 무시되지 않는다.
이럴 때는 아래 절차로 해결할 수 있다.
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 히스토리를 위해 한 걸음 더 나아가세요!
댓글이 없습니다.