나는 어떤 작업에 대해서도 줄 끝을 변경하지 않도록 자식을 얻으려고합니다. 불행히도, 그것은 중요하지 않은 것 같습니다. 이 동작을 비활성화하기위한 다양한 메커니즘이있는 다음 테스트 케이스로 축소했습니다.
- 두 대의 컴퓨터로 시작 (Windows 컴퓨터 = A, Linux 컴퓨터 = B)
- 두 컴퓨터에서 :
git config --global core.autocrlf false - 두 컴퓨터에서 :
git config --global core.eol crlf(경우에 따라)
- A에 새 저장소를 만듭니다. 빈 폴더에서 :
git init --shared(그런 다음 생성 된.git디렉토리 숨기기 해제 ).gitignore저장소에 새 파일 만들기.gitattributes한 줄로 저장소에 새 파일 을 만듭니다 .* -textgit add .,git commit -m "initial commit"예를 들어 this .git branch master_recv- 리모컨 추가
document.txtCRLF를 포함하는 저장소에 새 파일 만들기- 커밋 :
git add -A, 다음git commit -m "<something>" - A
document.txt에는 여전히 CRLF가 포함되어 있습니다 (그리고이를 삭제하고로 재설정--hard하면 CRLF가있는 버전 이 반환 됨).
- 전체 디렉터리를 컴퓨터 B로 SCP
- 새 파일 추가
new fileCRLF가 포함 - 커밋 :
git add -A, 다음git commit -m "<something>" - B
document.txt와 Bnew file모두 여전히 CRLF를 포함합니다.
- B의 마스터를 A로 끌어옵니다.
git pull <remote> master:master_recv - A
document.txt가 LF로 변경되었습니다. 추가 된 파일new file에는 LF도 포함되어 있습니다.
B가 Windows 시스템이면 문제가 발생하지 않습니다.


core.autocrlf항상 거짓이었다?\n이미 저장소에 줄 끝이있는 것 같 습니까? 작업 디렉토리에서 저장소에서 변경할 설정 이 없습니다 .\n\r\n