Git을 사용하면“LF는 CRLF로 대체됩니다”경고를 끄려면 어떻게합니까


153

Git을 사용하면 autocrlf = true플래그를 사용할 때 줄 끝이 변경 될 때 경고가 계속 표시됩니다.

경고의 목적과 줄 끝 플래그를 끄는 방법을 이해하지만 경고 자체를 끄려면 어떻게해야합니까?


git이 gitattributes를 도입 한 후 여기에있는 모든 대답은 더 이상 사용되지 않습니다. Safecrlf는 친구입니다 autocrlf는 아닙니다! 내 답변을
Rusi

답변:


281

당신은 경고를 해제 할 수 있습니다

git config --global core.safecrlf false

(이것은 기능 자체가 아니라 경고 만 끕니다.)


경고를 끄면 git이 lf를 crlf로 대체하지 못하게됩니까? @chronial
aidonsnous

3
git docs 에서 @aidonsnous : core.safecrlf가 "true"또는 "warn"으로 설정된 경우 git은 core.autocrlf의 현재 설정에 대해 변환이 되돌릴 수 있는지 확인합니다. "true"의 경우 git은 되돌릴 수없는 변환을 거부합니다. "경고"의 경우, git은 경고 만 인쇄하지만 되돌릴 수없는 변환을 허용합니다. 되돌릴 수없는 변환을 거부 할 필요가없는 경우 core.safecrlf를 false로 설정하면 경고가 표시되지 않지만 여전히 자동 변환됩니다.
Danny Libin

5

core.autocrlf input및을 사용해야합니다 core.eol input. 또는 git이 줄 끝을 전혀 autocrlf false바꾸지 못하게하고 diff 등으로 crlf를 강조 표시 하지 않도록하십시오 core.whitespace cr-at-eol.

도움이 되었기를 바랍니다


일반적으로 BAT 스크립트는 CRLF로 끝나고 커밋되고 SH 스크립트는 LF로 커밋되기를 원합니다.
Sandburg September

0

core.whitespace옵션을 찾고 있습니다 ( git config --help자세한 내용 참조).

이 옵션을 다음과 같이 설정할 수 있습니다.

$ git config core.whitespace cr-at-eol

0

나는 이런 식으로 사용했다 :

현재 파일을 Git에 저장하면 작업 내용이 손실되지 않습니다.

git add . -u
git commit -m "Saving files before refreshing line endings"

Git의 인덱스에서 모든 파일을 제거하십시오.

git rm --cached -r .

새로운 줄 끝을 모두 얻으려면 Git 인덱스를 다시 작성하십시오.

git reset --hard

변경된 모든 파일을 다시 추가하고 커밋을 준비하십시오. 변경되지 않은 파일이 있는지 검사 할 수 있습니다.

git add .
# It is perfectly safe to see a lot of messages here that read
# "warning: CRLF will be replaced by LF in file."

저장소에 변경 사항을 적용하십시오.

git commit -m "Normalize all the line endings"

https://help.github.com/articles/dealing-with-line-endings/


13
OP가 더 이상 경고를 보지 않으려 고 노력하고 있다고 생각합니다. 모든 줄 끝을 정규화하지는 않습니다.
Mike Cluck

git rm --cached -r . && git reset --hard트릭을 수행하는 것 같습니다
Shanimal

0

재미있게도, 여기에 설명 된 것처럼 두 가지 구성을 모두 적용했으며 내 .gitconfig 파일에는 다음 두 줄이 포함되어 있습니다.

[core]
       autocrlf = false
       whitespace = cr-at-eol

그러나 나는 경고를 받았다. 이제 두 줄을 모두 주석 처리하고 실제로 경고가 사라졌습니다. 왜 내가 처음에 그것들을 넣었는지 모르겠다.


0

"core.safecrlf false"설정이 작동합니다. 그러나 값을 'true'로 변경하면 아래와 같이 출력이 'warning'에서 'fatal'로 변경됩니다.

$ git add -A
warning: LF will be replaced by CRLF in .gitignore.
The file will have its original line endings in your working directory

$ git config --global core.safecrlf false

$ git reset

$ git config --global core.safecrlf true

$ git add -A
fatal: LF would be replaced by CRLF in .gitignore

$

최근 git에서는 autocrlf보다 gitattributes를 사용하는 것이 좋습니다. 내 답변을 참조하십시오 . (이 질문에) 모든 답변은 오래되고 사용되지 않습니다
RUSI
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.