Couldn't checkout ... invalid path ...

Couldn't checkout ... invalid path ...

Git 파일명 특수문자에 의한 오류. OS 호환성에 주의할 것

 

❗ 증상


알고리즘 스터디를 진행하며 발생한 오류다.
master 브랜치를 관리하고 있는데, 스터디원들의 운영체제가 모두 달라 발생한 현상이다.

Windows파일 시스템(NTFS)에서는 파일명에 일부 특수문자를 사용할 수 없다.

반면 MacOS의 파일 시스템은 파일명에 특수문자를 사용 할 수 있다.

그래서 이런 특징들로 인해 도대체 무슨 문제가 발생하느냐?

윈도우에서 git pull/checkout을 하려는데 원격 리파지토리에서 내려받으려는 파일명이 특수문자로 작성돼있는 경우

윈도우에선 파일명에 특수문자가 있을 수 없다는 제약으로 인해 해당 파일을 가져올 수 없다는 에러가 발생한다.

✅ 해결


세가지 방법이 있다.

  1. 가장 좋은 방법으로 파일명에 특수문자를 사용하지 않는다.
  2. 모든 구성원이 동일한 OS환경을 갖춘다. (어렵다)
  3. 윈도우에서 아래 명령어를 입력한다.
git config core.protectNTFS false 
git checkout -f HEAD

이 방법은 NTFS를 비활성화 시키는 방법인데,

윈도우에서 pull/checkout을 할 때 파일명에 특수문자가 포함된 파일을 제외하고 가져와버린다.

가장 간단하지만 파일이 손상될 수 있으므로 정말 추천하지 않는 방법이다.


© 2022. All rights reserved.