경고 : LF는 CRLF로 대체됩니다.
사용중인 편집기에 따라 LF가있는 텍스트 파일은 CRLF로 저장할 필요가 없습니다. 최근 편집기는 eol 스타일을 유지할 수 있습니다 . 그러나 그 git config 설정은 그것들을 변경해야한다고 주장합니다 ...
간단히 ( 여기서 권장하는 대로 ) :
git config --global core.autocrlf false
이렇게하면 자동 변환을 피하고 .gitattributes
파일 과 core.eol
지시문을 통해 계속 지정할 수 있습니다 .
windows git "LF는 CRLF로 대체 될 것입니다"
이 경고 꼬리는 뒤로입니까?
아니요 : Windows를 사용 중이며 git config
도움말 페이지에 언급되어 있습니다.
CRLF
저장소에 정규화 된 줄 끝이없는 경우에도 작업 디렉토리에 줄 끝 을 가지려면이 설정을 사용하십시오 .
" LF를 CRLF로 대체하는 git "에 설명 된대로 , 이는 (와 같은 커밋이 아닌) 체크 아웃시에만 발생합니다core.autocrlf=true
.
repo
/ \
crlf->lf lf->crlf
/ \
XiaoPeng 의 답변 에서 언급했듯이 경고는 다음과 같습니다.
경고 : (현재 core.autocrlf
구성 으로 다른 폴더를 체크 아웃하거나 복제하는 경우) LF는 CRLF로 바뀝니다
. 파일은 현재 작업 디렉토리에 원래 줄 끝이 있습니다.
git-for-windows/git
문제 1242 에서 언급했듯이 :
여전히이 메시지가 혼동된다고 생각합니다. 예를 들어 " file.json
파일을 삭제하고 다시 체크 아웃 한 후 LF가 CRLF로 대체됩니다"와 같이 문제에 대한 자세한 설명을 포함하도록 메시지가 확장 될 수 있습니다 .
참고 : 사용하는 경우 힘내 2.19 (년 9 월 2018) core.autocrlf
, 가짜 경고가 지금은 억제된다 "LF를 CRLF로 대체됩니다" .
quaylar가 올바르게 언급 했듯이 커밋에 대한 변환이있는 경우 LF
에만 수행됩니다.
특정 경고 " LF will be replaced by CRLF
"는 convert.c # check_safe_crlf ()에서 발생합니다 .
if (checksafe == SAFE_CRLF_WARN)
warning("LF will be replaced by CRLF in %s.
The file will have its original line endings
in your working directory.", path);
else /* i.e. SAFE_CRLF_FAIL */
die("LF would be replaced by CRLF in %s", path);
에 의해 convert.c#crlf_to_git()
호출되고 convert.c#convert_to_git()
자체에 의해 호출됩니다 convert.c#renormalize_buffer()
.
그리고 마지막 renormalize_buffer()
은에 의해서만 호출됩니다 merge-recursive.c#blob_unchanged()
.
따라서 git commit
커밋이 병합 프로세스의 일부인 경우에만 이 변환이 발생 한다고 생각 합니다.
참고 : Git 2.17 (Q2 2018)에서는 코드 정리에 약간의 설명이 추가됩니다.
Torsten Bögershausen ( )의 commit 8462ff4 (2018 년 1 월 13 일)를 참조하십시오 . (의해 병합 - Junio C 하마노 - 에 9bc89b1 커밋 2,018 13 이월)tboegi
gitster
convert_to_git () : safe_crlf / checksafe는 int conv_flags가됩니다.
호출 할 때 convert_to_git()
의 checksafe
매개 변수는 EOL 변환 (경우 어떻게해야하는지 정의 CRLF --> LF --> CRLF
)하지 왕복 깨끗하게 않습니다.
또한 줄 끝을 다시 정규화 CRLF --> LF
하거나 ( ) 그대로 유지 해야하는지 여부도 정의했습니다 .
checksafe는 safe_crlf
다음 값을 가진 열거 형입니다.
SAFE_CRLF_FALSE: do nothing in case of EOL roundtrip errors
SAFE_CRLF_FAIL: die in case of EOL roundtrip errors
SAFE_CRLF_WARN: print a warning in case of EOL roundtrip errors
SAFE_CRLF_RENORMALIZE: change CRLF to LF
SAFE_CRLF_KEEP_CRLF: keep all line endings as they are
Git 2.17주기 에서 8462ff4에 도입 된 회귀 ( " convert_to_git()
:
safe_crlf/checksafe
는 int conv_flags
", 2018-01-13, Git 2.17.0 ")가 설정에도 불구하고autocrlf
다시 쓰기로 인해 경고 메시지가 표시
됩니다.safecrlf=false
Anthony Sottile ( )의 commit 6cb0912 (2018 년 6 월 4 일)를 참조하십시오 . ( Junio C Hamano 에 의해 병합 -- 커밋 8063ff9 , 2018 년 6 월 28 일)asottile
gitster