WSL에서 VSCode로 접속하면 Git이 실제 변경이 없는데도 모든 파일을 M(Modified)으로 표시하는 문제는 굉장히 자주 발생하는 문제입니다!
Windows ↔ WSL 간 줄바꿈(EOL) 또는 파일권한(permissions) 차이 때문에 발생하는 Git 오해 입니다.
즉, 진짜 수정이 아니라 환경 차이로 인해 Git이 잘못 인식하는 것 입니다.
아래 해결 방법을 순서대로 알려드리겠습니다.
핵심 원인 1
CRLF ↔ LF 줄바꿈 차이 때문!
Windows: CRLF
WSL/Linux: LF
둘이 섞이면 Git은 모든 파일이 바뀐 것으로 착각합니다.
해결방법
프로젝트 루트에서 입력
git config core.autocrlf false
git config core.eol lf
그리고 한 번만
git reset --hard
결과: 줄바꿈이 정규화되고 M 표시가 사라집니다!
핵심 원인 2
WSL에서 권한 변경(755/644)으로 인해 Git이 M으로 인식
Linux는 파일 권한도 버전추적 대상으로 봅다.
해결방법
Git이 파일 권한을 무시하도록 설정
git config core.fileMode false
그리고 다시
git reset --hard
핵심 원인 3
WSL ↔ Windows 파일 시스템의 타임스탬프 문제 Windows는 초 단위, Linux는 나노초 단위 타임스탬프를 저장하는데
이 차이로 Git이 파일이 변경됐다고 착각하기도 합니다.
해결방법
WSL에서 Git의 파일 시스템 타임스탬프 무시
git config core.trustctime false
그리고
git reset --hard
이외
가장 효과적인 “3행 해결 패키지”
실제로 개발자가 WSL 문제 해결할 때 가장 많이 쓰는 조합입니다.
git config core.autocrlf false
git config core.fileMode false
git config core.trustctime false
git reset --hard반응형
'Backend & Infra > GitHub' 카테고리의 다른 글
| [GIT] GitHub로 개인 홈페이지 만들기! (0) | 2026.03.02 |
|---|---|
| [Git] CI/CD 정책 (0) | 2025.11.12 |
| [Git] 커밋 메시지 규칙 - 2 (0) | 2025.02.28 |
| [Git] Unity GitHub 참고사항 (0) | 2024.09.09 |
| [Git] 커밋 메시지 규칙 (0) | 2024.09.03 |