본문 바로가기
GIT

GIT Error - Git can't detect local changes, can't add

by 양찬우 2021. 6. 13.
728x90

오류

로컬 파일 수정 후 변경사항을 git add로 git index에 추가(staging)시 정상적으로 add 되지 않고, git status에도 변경사항이 기록되지 않는다. 즉, git이 로컬 변화를 인지하지 못한다.

> git status 

On branch master

nothing to commit, working directory clean

원인 및 해결

git은 원래 자동으로 파일의 변화를 기록하고 검사한다. 만약 해당 오류가 발생했다면 여러가지 원인이 있을 수 있다.

  1. .gitignore에 파일이 등록되어 있다. 
    • .gitignore 파일에 등록된 파일은 git이 파일 변화를 검사하지 않는다. 
  2. 저장소 위치를 착각했을 경우
    • 예를 들어, 파일을 수정한 text editor의 위치와 git status를 확인한 command line의 위치가 다를 경우 command line이 확인한 현 위치에서는 파일이 수정되지 않았기 때문에 당연히 아무 변화도 기록되지 않는다. 나도 겪었고, 친구도 겪었고, 모두 겪을 수 있는 사소한 오해이자 실수다. 꼭 확인하자. 
  3.  path 또는 file에 assume unchanged 옵션이 설정되어 있는 경우  
git update-index --no-assume-unchanged path/to/file
  • gitignore와 유사하게, 파일 또는 경로에 assume unchanged 옵션을 부여할 수 있는데, 이렇게 하면 Git이 파일 변경사항을 기록하지 않는다. 따라서 git index가 다시 경로 또는 파일의 변경사항을 검사하도록 해당 옵션을 끄면 된다.

4. git cache의 오작동 

> git rm --cached path/to/file   	 // 캐시 삭제 
> git reset path/to/file		 // 경로 또는 파일 index 리셋
  • 가끔 cache가 오작동하면 변경사항이 확인되지 않을 수 있다. 이 경우 저장된 cache를 삭제하고 마지막 커밋부터 git index를 reload 시키면 해결할 수 있다.

참고

728x90

댓글