GIT
GIT Error - Git can't detect local changes, can't add
양찬우
2021. 6. 13. 20:12
728x90
오류
로컬 파일 수정 후 변경사항을 git add로 git index에 추가(staging)시 정상적으로 add 되지 않고, git status에도 변경사항이 기록되지 않는다. 즉, git이 로컬 변화를 인지하지 못한다.
> git status
On branch master
nothing to commit, working directory clean
원인 및 해결
git은 원래 자동으로 파일의 변화를 기록하고 검사한다. 만약 해당 오류가 발생했다면 여러가지 원인이 있을 수 있다.
- .gitignore에 파일이 등록되어 있다.
- .gitignore 파일에 등록된 파일은 git이 파일 변화를 검사하지 않는다.
- 저장소 위치를 착각했을 경우
- 예를 들어, 파일을 수정한 text editor의 위치와 git status를 확인한 command line의 위치가 다를 경우 command line이 확인한 현 위치에서는 파일이 수정되지 않았기 때문에 당연히 아무 변화도 기록되지 않는다. 나도 겪었고, 친구도 겪었고, 모두 겪을 수 있는 사소한 오해이자 실수다. 꼭 확인하자.
- 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