etc./StackOverFlow

LF는 git에서 CRLF로 대체됩니다. - 그게 무엇이며 중요합니까? [복제하다]

청렴결백한 만능 재주꾼 2022. 2. 8. 08:38
반응형

질문자 :LearningRoR


새 레일 애플리케이션을 만들 때 LF 교체에 대한 git 경고가 표시됩니다. 나는 git init git add 를 한다.

그리고 붐! 거의 모든 파일에 대해 이 팝업이 표시됩니다. 나는 보통 계속해서 내 응용 프로그램을 빌드하고 파일을 많이 변경하면 사라집니다.

예시:

파일은 작업 디렉토리에서 원래 줄 끝을 갖습니다. 경고: LF는 Gemfile에서 CRLF로 대체됩니다.

파일은 작업 디렉토리에서 원래 줄 끝을 갖습니다. 경고: LF는 Gemfile.lock에서 CRLF로 대체됩니다.

파일은 작업 디렉토리에서 원래 줄 끝을 갖습니다. 경고: README에서 LF는 CRLF로 대체됩니다.

LF와 CRLF의 차이점은 무엇입니까?

장기적으로 이것에 대해 걱정해야 합니까, 아니면 그냥 무시하고 평소처럼 계속 해야 합니까?



Unix 시스템에서 줄의 끝은 줄 바꿈(LF)으로 표시됩니다. 창에서 줄은 캐리지 리턴(CR)과 줄 바꿈(LF)으로 표시되므로(CRLF)입니다. 유닉스 시스템에서 업로드된 git에서 코드를 받으면 LF만 있습니다.

Windows 시스템에서 작업하는 단일 개발자이고 git이 자동으로 LF를 CRLF로 바꾸는 것을 신경 쓰지 않는다면 git 명령줄에 다음을 입력하여 이 경고를 끌 수 있습니다

 git config core.autocrlf true

git이 이를 어떻게 처리해야 하는지 현명한 결정을 내리 려면 설명서를 읽어보세요.

다음은 스니펫입니다.

서식 및 공백

형식 지정 및 공백 문제는 특히 크로스 플랫폼에서 많은 개발자가 공동 작업할 때 직면하는 보다 답답하고 미묘한 문제 중 일부입니다. 편집자가 조용히 공백 변경을 도입하고 파일이 Windows 시스템에 닿는 경우 줄 끝이 교체될 수 있기 때문에 패치 또는 기타 공동 작업에서 미묘한 공백 변경을 도입하기가 매우 쉽습니다. Git에는 이러한 문제에 도움이 되는 몇 가지 구성 옵션이 있습니다.

 core.autocrlf

Windows에서 프로그래밍 중이고 그렇지 않은 사람과 작업하는 경우(또는 그 반대의 경우도 마찬가지) 어느 시점에서 줄 끝 문제에 직면하게 될 것입니다. Windows는 파일의 줄 바꿈에 캐리지 리턴 문자와 줄 바꿈 문자를 모두 사용하는 반면 Mac 및 Linux 시스템은 줄 바꿈 문자만 사용하기 때문입니다. 이것은 교차 플랫폼 작업의 미묘하지만 믿을 수 없을 정도로 성가신 사실입니다. Windows의 많은 편집기는 기존 LF 스타일 줄 끝을 CRLF로 자동으로 바꾸거나 사용자가 Enter 키를 눌렀을 때 두 줄 끝 문자를 모두 삽입합니다.

Git은 인덱스에 파일을 추가할 때 CRLF 줄 끝을 LF로 자동 변환하여 이를 처리할 수 있으며, 파일 시스템에 코드를 체크아웃할 때 그 반대의 경우도 마찬가지입니다. core.autocrlf 설정으로 이 기능을 켤 수 있습니다. Windows 시스템을 사용하는 경우 true로 설정합니다. 코드를 체크아웃할 때 LF 끝을 CRLF로 변환합니다.

 $ git config --global core.autocrlf true

LF 줄 끝을 사용하는 Linux 또는 Mac 시스템을 사용하는 경우 파일을 체크아웃할 때 Git이 줄 끝을 자동으로 변환하는 것을 원하지 않습니다. 그러나 CRLF로 끝나는 파일이 실수로 도입되면 Git에서 수정하기를 원할 수 있습니다. 커밋 시 Git에 CRLF를 LF로 변환하도록 지시할 수 있지만 core.autocrlf를 입력으로 설정하면 그 반대가 아닙니다.

 $ git config --global core.autocrlf input

이 설정은 Windows 체크아웃에서 CRLF로 끝나야 하지만 Mac 및 Linux 시스템과 저장소에서는 LF로 끝납니다.

Windows 전용 프로젝트를 수행하는 Windows 프로그래머인 경우 이 기능을 끄고 구성 값을 false로 설정하여 저장소에 캐리지 리턴을 기록할 수 있습니다.

 $ git config --global core.autocrlf false

Shrage Smilowitz

원하는 경우 다음을 사용하여 git core 구성에서 이 기능을 비활성화할 수 있습니다.

 git config core.autocrlf false

그러나 다음을 사용하여 경고를 제거하는 것이 좋습니다.

 git config core.autocrlf true

SG 86

출처 : http:www.stackoverflow.com/questions/5834014/lf-will-be-replaced-by-crlf-in-git-what-is-that-and-is-it-important

반응형