프로젝트를 제출할 때 LF가 CRLF로 대체됩니다...라는 경고가 많이 나타납니다. 색인 업데이트가 막혔습니다. 온라인으로 확인해보니 한 줄이었습니다. 문제 해결 방법은 git config --global core.autocrlf false해결할 수 있지만 여기서는 작동하지 않습니다. 문제가 무엇인지 알 수 없습니다. config
문제를 해결하기 전에 몇 마디 더 말씀드리고 싶습니다. GitHub 또는 기타 원격 호스팅 서버를 통해 다른 사람들과 코드 개발을 공동으로 수행하는 경우 줄 바꿈이 올바르게 처리되는지 확인하는 것이 중요합니다. 우선, 운영체제마다 개행 문자에 대한 정의가 다르다는 점을 알아야 합니다. Unix나 Unix 계열 운영체제에서는 개행 문자를 LF라고 하고, Windows 시스템에서는 개행 문자를 CRLF라고 합니다. 둘 사이에는 큰 차이가 있습니다:
Unix 시스템에서 각 줄의 끝은 "<linefeed>"입니다. Windows 시스템에서는 "n"이며 각 줄의 끝은 "<linefeed><carriage return>"입니다.
참고: 캐리지 리턴(CR)과 줄 바꿈(LF)의 차이인 'r'과 'n'에서 인용되었습니다.
이것이 문제의 근원입니다. 즉, 귀하는 Windows 시스템을 사용하고 친구는 Mac을 사용하는 경우 Git을 사용하여 소프트웨어를 공동으로 개발할 때 일관되지 않은 줄 바꿈 문제가 발생합니다.
Git은 실제로 일관되지 않은 줄 바꿈 문제를 자체적으로 처리할 수 있지만 예상치 못한 결과가 발생할 수 있습니다. 따라서 관련 설정이 필요합니다. 일반적으로 귀찮게 하고 싶지 않다면 아래와 같이 일반적인 방법을 사용할 수 있습니다.
으아아아
실제로 Windows 버전의 git 또는 togoiseGit을 설치했을 때 이미 이러한 구성을 만들었을 수도 있습니다. 예를 들어 포스터에서 이러한 경고가 생성된 이유는 다음과 같습니다.
경고: LF는 다음에서 CRLF로 대체됩니다...
위 구성을 했기 때문이죠. 거기에 붙어있는 이유는 교체해야 할 곳이 너무 많기 때문일 수도 있습니다. 잠시만 기다려도 됩니다. 그런데
를
로 변경하면 git이 자체적으로 처리하도록 하므로 경고가 보고되지 않습니다. 이렇게 하면 문제가 근본적으로 해결되지 않습니다. 이렇게 하면 친구와 줄 바꿈이 일치하지 않을 수 있습니다. truefalse물론, 일관되지 않은 줄 바꿈 문제를 해결하는 더 좋은 방법이 있습니다. 줄 바꿈을 통합하려면
file을 사용하세요. 이 파일은
와 다소 비슷하며, 이름도 비슷할 뿐만 아니라 사용법과 작성 구문도 비슷합니다. .gitattributes.gitignore해당 파일은 반드시 웨어하우스 루트 디렉터리에 위치해야 하며, 다른 파일과 마찬가지로 수정 및 제출이 가능합니다. 이 파일을 작성하는 방법은 다음과 같습니다.
파일 내용은 두 개의 열로 나누어진 테이블과 같습니다. 왼쪽 열은 Git이 일치해야 하는 파일 이름이고 오른쪽 열은 Git이 사용해야 하는 줄 바꿈 형식입니다. 밤을 살펴봅시다:
으아아아
에 대해 잘 아시는 분은 위 파일의 왼쪽 열이 매우 익숙하다고 느끼실 것입니다. 여기서는 자세히 설명하지 않겠습니다. 익숙하지 않은 분은 직접 관련 정보를 확인하시기 바랍니다. 유일한 차이점은
파일의 오른쪽에 .gitignore, .gitattributes, text와 같은 추가 열이 있다는 것입니다. 우리는 이 열이 왼쪽과 오른쪽의 해당 파일에서 사용되는 개행 형식을 설정하는 데 사용된다고 말했습니다. 열은 공백으로 구분됩니다. 오른쪽 열의 구문을 자세히 소개하겠습니다. text eol=crlf
text=auto 왼쪽의 일치하는 파일이 사용하는 개행 형식을 git에서 처리하도록 합니다. 이것이 기본 옵션입니다.
text eol=crlf 왼쪽의 일치하는 파일에 대해 CRLF 개행 형식을 균일하게 사용하세요. 어떤 파일에 LF가 나타나면 CRLF로 변환됩니다.
text eol=lf 왼쪽의 일치하는 파일에 대해 LF 개행 형식을 균일하게 사용합니다. CRLF가 어떤 파일에 나타나면 LF로 변환됩니다.
binary git에게 이 파일은 텍스트 파일이 아니므로 줄바꿈을 변경하면 안 된다고 알려줍니다. 또한 binary과 기호 -text -diff는 동일합니다.
위 구문이면 충분할 것입니다. 관심이 있으시면 공식 정보 등 관련 정보를 직접 확인하실 수 있습니다: https://git-scm.com/book/en/v...
문제를 해결하기 전에 몇 마디 더 말씀드리고 싶습니다. GitHub 또는 기타 원격 호스팅 서버를 통해 다른 사람들과 코드 개발을 공동으로 수행하는 경우 줄 바꿈이 올바르게 처리되는지 확인하는 것이 중요합니다. 우선, 운영체제마다 개행 문자에 대한 정의가 다르다는 점을 알아야 합니다. Unix나 Unix 계열 운영체제에서는 개행 문자를 LF라고 하고, Windows 시스템에서는 개행 문자를 CRLF라고 합니다. 둘 사이에는 큰 차이가 있습니다:
참고: 캐리지 리턴(CR)과 줄 바꿈(LF)의 차이인 'r'과 'n'에서 인용되었습니다.으아아아
실제로 Windows 버전의 git 또는 togoiseGit을 설치했을 때 이미 이러한 구성을 만들었을 수도 있습니다. 예를 들어 포스터에서 이러한 경고가 생성된 이유는 다음과 같습니다. 경고: LF는 다음에서 CRLF로 대체됩니다... 를로 변경하면 git이 자체적으로 처리하도록 하므로 경고가 보고되지 않습니다. 이렇게 하면 문제가 근본적으로 해결되지 않습니다. 이렇게 하면 친구와 줄 바꿈이 일치하지 않을 수 있습니다.
file을 사용하세요. 이 파일은true
false
물론, 일관되지 않은 줄 바꿈 문제를 해결하는 더 좋은 방법이 있습니다. 줄 바꿈을 통합하려면와 다소 비슷하며, 이름도 비슷할 뿐만 아니라 사용법과 작성 구문도 비슷합니다.
.gitattributes
.gitignore
해당 파일은 반드시 웨어하우스 루트 디렉터리에 위치해야 하며, 다른 파일과 마찬가지로 수정 및 제출이 가능합니다. 이 파일을 작성하는 방법은 다음과 같습니다.파일 내용은 두 개의 열로 나누어진 테이블과 같습니다. 왼쪽 열은 Git이 일치해야 하는 파일 이름이고 오른쪽 열은 Git이 사용해야 하는 줄 바꿈 형식입니다. 밤을 살펴봅시다:
으아아아파일의 오른쪽에
.gitignore
,.gitattributes
,text
와 같은 추가 열이 있다는 것입니다. 우리는 이 열이 왼쪽과 오른쪽의 해당 파일에서 사용되는 개행 형식을 설정하는 데 사용된다고 말했습니다. 열은 공백으로 구분됩니다. 오른쪽 열의 구문을 자세히 소개하겠습니다.text eol=crlf
text=auto
왼쪽의 일치하는 파일이 사용하는 개행 형식을 git에서 처리하도록 합니다. 이것이 기본 옵션입니다.
text eol=crlf
왼쪽의 일치하는 파일에 대해 CRLF 개행 형식을 균일하게 사용하세요. 어떤 파일에 LF가 나타나면 CRLF로 변환됩니다.
text eol=lf
왼쪽의 일치하는 파일에 대해 LF 개행 형식을 균일하게 사용합니다. CRLF가 어떤 파일에 나타나면 LF로 변환됩니다.
binary
git에게 이 파일은 텍스트 파일이 아니므로 줄바꿈을 변경하면 안 된다고 알려줍니다. 또한
binary
과 기호-text -diff
는 동일합니다.위 구문이면 충분할 것입니다. 관심이 있으시면 공식 정보 등 관련 정보를 직접 확인하실 수 있습니다: https://git-scm.com/book/en/v...
일반적으로 첫 번째 방법보다 번거롭기는 하지만 두 번째 방법이 가장 좋은 해결책입니다.
P.S: 블로그로 정리: Git이 줄바꿈 문제를 처리합니다
반대로 했다면 true로 설정해야 합니다.