프로젝트를 진행하다 보면 로컬 환경에 맞춰 자동으로 수정되는 설정 파일들이 있습니다. .gitignore에 등록하고 싶지만, 이미 원격 저장소에 커밋되어 추적 중인 파일은 .gitignore가 적용되지 않습니다. 
이 때문에 매번 checkout, commit, rebase를 할 때마다 지장을 받게 되는데요. 팀원들에게 영향을 주지 않고, 오직 내 로컬 환경에서만 특정 파일의 수정을 무시하고 해제하는 방법을 공유합니다.


1. 로컬 수정사항 무시하기 (설정)

Git이 해당 파일의 변경 사항을 더 이상 감시하지 않도록 설정합니다. 파일은 그대로 남아있지만, git status에 표시되지 않습니다.

git update-index --assume-unchanged [파일경로]

2. 로컬 수정사항 다시 반영하기 (해제)

원격 저장소의 최신 변경 사항을 반영해야 하거나, 실제로 해당 파일을 수정해서 커밋해야 할 때는 설정을 해제해야 합니다.

git update-index --no-assume-unchanged [파일경로]

3. 무시된 파일 목록 확인하기

어떤 파일을 무시했는지 기억나지 않을 때 아래 명령어로 전체 목록을 확인할 수 있습니다.

git ls-files -v | grep "^h"
  • 대문자 **H**는 정상 추적 중인 파일, 소문자 **h**는 assume-unchanged가 적용되어 무시된 파일을 뜻합니다.

요약 및 주의사항

  • .gitignore와의 차이점: .gitignore는 원격 저장소에 공유되는 규칙이지만, 이 방법은 내 로컬 저장소에만 적용됩니다. 한번 커밋된 파일도 계속 추적되는 문제가 발생하지 않습니다.
반응형