개발관련/Git

Windows 용 Git에서 파일 이름이 너무 깁니다.

Rateye 2021. 7. 28. 10:23
728x90
반응형
질문 : Windows 용 Git에서 파일 이름이 너무 깁니다.

Git-1.9.0-preview20140217 을 사용하고 있습니다. 아시다시피이 릴리스는 파일 이름이 너무 긴 문제를 해결해야합니다. 하지만 나는 아닙니다.

확실히 나는 뭔가 잘못하고 있습니다 : git config core.longpaths truegit add . 그런 다음 git commit . 모든 것이 잘되었습니다. 그러나 이제 git status Filename too long 파일 목록이 표시됩니다. 예를 들면 다음과 같습니다.

node_modules/grunt-contrib-imagemin/node_modules/pngquant-bin/node_modules/bin-wrapper/node_modules/download/node_modules/request/node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-handle-source-errors.js: Filename too long

나를 위해 재현하는 것은 매우 간단합니다. Angular 생성기 ( "yo angular") 로 Yeoman .gitignore 파일에서 node_modules 를 제거하면됩니다. 그런 다음 앞서 언급 한 Git 명령을 반복합니다.

내가 여기서 무엇을 놓치고 있습니까?

반응형
답변

Git은 Windows에서 msys로 컴파일되는 경우를 제외하고 파일 이름에 대해 4096 자로 제한됩니다. 이전 버전의 Windows API를 사용하며 파일 이름은 260 자로 제한됩니다.

내가 이것을 이해하는 한, 그것은 Git이 아닌 msys의 한계입니다. 자세한 내용은 https://github.com/msysgit/git/pull/110 에서 확인할 수 있습니다.

Windows에서 다른 Git 클라이언트를 사용하거나 다른 답변에서 설명한대로 core.longpathstrue

git config --system core.longpaths true

Git은 스크립트와 컴파일 된 코드의 조합으로 빌드됩니다. 위의 변경으로 일부 스크립트가 실패 할 수 있습니다. 이것이 core.longpaths가 기본적으로 활성화되지 않는 이유입니다.

https://docs.microsoft.com/en-us/windows/desktop/fileio/naming-a-file 의 Windows 설명서에 몇 가지 추가 정보가 있습니다.

Windows 10 버전 1607부터 MAX_PATH 제한이 일반적인 Win32 파일 및 디렉터리 기능에서 제거되었습니다. 그러나 새로운 동작을 선택해야합니다.

레지스트리 키를 사용하면 새로운 긴 경로 동작을 활성화하거나 비활성화 할 수 있습니다. 긴 경로 동작을 사용하려면 HKLM \ SYSTEM \ CurrentControlSet \ Control \ FileSystem LongPathsEnabled (유형 : REG_DWORD)에서 레지스트리 키를 설정하십시오.

출처 : https://stackoverflow.com/questions/22575662/filename-too-long-in-git-for-windows
728x90
반응형