답변:
에서 워드 프로세서 :
.gitattributes
(또는.git/info/attributes
) 파일의 각 줄 은 다음과 같은 형식입니다.pattern attr1 attr2 ...
여기서 패턴은입니다 *
. 이는 모든 파일을 의미하고 속성은 text=auto
입니다.
무엇을 text=auto
합니까? 설명서에서 :
텍스트가 "자동"으로 설정되면 경로가 자동 줄 끝 정규화로 표시됩니다. Git이 내용이 텍스트라고 결정하면 체크인시 줄 끝이 LF로 정규화됩니다.
활성화되지 않은 경우 기본 동작은 무엇입니까?
불특정
텍스트 속성을 지정하지 않으면 Git은 core.autocrlf 구성 변수를 사용하여 파일을 변환해야하는지 여부를 결정합니다.
무엇을 core.autocrlf
합니까? 문서에서 :
core.autocrlf
이 변수를 "true"로 설정하는 것은 텍스트 파일이 정규화되지 않는다는 점을 제외하고 모든 파일에서 text 속성을 "auto"로 설정하는 것과 거의 동일합니다. 리포지토리에 CRLF가 포함 된 파일은 건드리지 않습니다. 저장소에 정규화 된 줄 끝이없는 경우에도 작업 디렉토리에 CRLF 줄 끝을 가지려면이 설정을 사용하십시오. 이 변수는 입력으로 설정 될 수 있으며,이 경우 출력 변환이 수행되지 않습니다.
이 모든 것이 진흙처럼 분명하다고 생각한다면, 당신은 혼자가 아닙니다.
* text=auto
내 말로 하는 일은 다음과 같습니다 . 누군가 파일을 커밋 할 때 Git은 해당 파일이 텍스트 파일인지 아닌지 추측하고, 그렇다면 파일을 모든 CR + LF 바이트가 LF 바이트로 대체하는 파일 버전을 커밋합니다. 작업 트리의 파일 모양에 직접 영향을 미치지 않으며 파일을 체크 아웃 할 때 LF 바이트를 CR + LF 바이트로 변환하는 다른 설정이 있습니다.
난 것입니다 하지 두는 것이 좋습니다 * text=auto
에 .gitattributes
파일. 대신 다음과 같은 것이 좋습니다.
*.txt text
*.html text
*.css text
*.js text
이것은 텍스트 파일 인 파일을 명시 적으로 지정합니다.이 파일은 오브젝트 데이터베이스에서 CRLF를 LF로 변환하지만 반드시 작업 트리에서는 아닙니다. 우리는 repo를 가지고 있었고 * text=auto
Git은 이미지 파일이 텍스트 파일이라고 잘못 추측하여 객체 데이터베이스에서 CR + LF 바이트를 LF 바이트로 대체하여 파일을 손상시킵니다. 그것은 디버깅하기에 재미있는 것이 아닙니다.
을 사용해야하는 * text=auto
경우을 첫 번째 행으로 두어 .gitattributes
이후 행이이를 대체 할 수 있도록하십시오. 이것은 점점 인기있는 관행이되고있는 것 같습니다.
everyone
에 의미 git-scm
, 그것은 그들이 * nix에서 스크립트 패키지를 개발하고, 따라서 * 괜찬아 개행 문자가 사용하고 있기 때문에 아마 정상 .
git-scm
* nix에서 나온 것과 같은 인기있는 개발 도구 . MacOS는 LF를 사용합니다. Windows 만 (주류 OS 만 고려) CRLF를 사용합니다. 이로 인해 Windows에서 * nix 도구를 사용하는 개발자와 파일을 교환 할 때 모든 사람이 더 어려워집니다. 왜 CRLF를 참조하십시오 .
*.txt text=auto
및 *.txt text
하세요? 위의 예제에서 4 줄은 모두 파일 확장자 직후가 text=auto
아니라고 생각했습니다 text
. 예를 들어 KiCad 풋 프린트 파일 ( ".kicad_mod"확장자)은 gitattributes 파일 *.kicad_mod text=auto
( kicad-pcb.org/libraries/klc/G1.7 ) 에서이 줄을 사용하여 정규화됩니다 .
줄 끝을 정규화합니다. 출처 : Kernel.org
텍스트가 "자동"으로 설정되면 경로가 자동 줄 끝 정규화로 표시됩니다. git이 내용이 텍스트라고 결정하면 체크인시 줄 끝이 LF로 정규화됩니다.
라인 끝 정규화를 시행하는 소스 코드 관리 시스템과 상호 운용하거나 저장소의 모든 텍스트 파일을 정규화하려는 경우 대신 모든 파일에 대해 텍스트 속성을 "자동"으로 설정해야합니다.
이것은 git이 텍스트로 간주하는 모든 파일이 저장소에서 정규화 된 (LF) 줄 끝을 갖도록합니다.
When a text file is normalized, its line endings are converted to LF in the repository.
LF
창에서도 그대로 유지된다고 말하는 것이 옳 습니까?
이 구성은 줄 끝을 처리하는 방법과 관련이 있습니다. 사용 가능한 경우 모든 줄 끝은 저장소에서 LF로 변환됩니다. 작업 디렉토리에서 줄 끝을 변환하는 방법을 다루는 다른 플래그가 있습니다. https://www.kernel.org/pub/software/scm/git/docs/gitattributes.html : 우리 문제에 대한 전체 정보