2011-12-28 2 views
40

저는 신참한데 도움이 필요합니다. Windows에서 msysgit을 사용하고 있습니다.힘내, 파일을 저장소에 추가하면 LF -> CRLF에 치명적인 오류가 발생합니다.

내가 명령 git add [folderName]을 실행할 때 나는 응답을 얻을 :

fatal: LF would be replaced by CRLF in [.css file or .js file] 

을하고 당신이하려고하면 다음 아무 일도 발생하지 커밋합니다.

$ git commit 
# On branch master 
# 
# Initial commit 
# 
# Untracked files: 
# (use "git add <file>..." to include in what will be committed) 
# 
#  so01/ 
nothing added to commit but untracked files present (use "git add" to track) 

이러한 CSS/js 파일 중 일부는 인터넷에서 다운로드되었으므로 LF가있는 것 같습니다. 파일을 열고 내용을 잘라내거나 붙여 넣으면 다음 파일에서 오류가 발생합니다.

도움이 될 것입니다.

편집

false로 core.autocrlf를 설정하면 문제를 해결하는 것,하지만 난 거짓이 옵션을 설정하지 많은 게시물을 읽어 보시기 바랍니다.

누군가이 상황에서 어떤 문제가 발생할 수 있는지 알 수 있습니까?

+0

Windows가 아닌 환경에있는 다른 사람들과 함께 작업하고 있습니까? –

+2

아니요. 저는 appharbor에 넣을 작은 응용 프로그램을 만들고 있습니다. 지금까지 모든 것이 좋았지 만 그 옵션의 차이점을 알고 싶었습니다. 내가 애플 리케이션을 마친 후에는 몇 가지 리스크를 계획하지만, 빠른 솔루션을 위해 SO를 사용 하긴하지만 말이다. – user619656

+0

그런 다음 autocrlf를 false로 설정해야합니다. 두통이 필요하지 않습니다. 파일을 그대로 사용하십시오. msysgit을 설치할 때의 기본 설정이 최악의 옵션을 취하는 것은 너무 나쁩니다. –

답변

22

코드 편집기가 라인 결말을 조작하도록하십시오. 자동 crlf는 false 여야합니다. 소스 컨트롤이 너무 똑똑 해지지 않게하십시오. 줄 끝을 변경하기 위해 소스 제어 도구가 필요하지 않은 경우에는하지 마십시오. 이것은 상처를 줄 것이다.

허용되는 답변에서 반복하십시오 : "네이티브 이메일을 처리해야하는 특정 치료법을 볼 수있는 경우가 아니면 autocrlf를 false로 남겨 두는 것이 좋습니다. autocrlf 섹션의 끝에 progit 책에서 또한

:

"당신은 Windows 전용 프로젝트를 수행하는 윈도우 프로그래머라면, 당신은에서 캐리지 리턴을 기록,이 기능을 해제 할 수 있습니다 "false로 설정 값을 설정하여 저장소

내가 줄 수있는 유일한 도움은 다른 경로를 가지고가는 경우에, 같은 MSysGit의 CR 등의 특수 문자가 표시됩니다 vim -bgit show HEAD:path/to/your/file.txt에 익숙해이다은 git이 저장 한 방식으로 파일을 표시해야합니다.

core.whitespace cr-at-eol에 패치 및 diff가 CR을 가능한 문제가되는 공백으로 강조 표시하지 않도록 설정하십시오.

번거롭지 않은 가치가 있습니다. 있는 그대로 저장하십시오.

+0

자동 crlf는 거짓이어야합니다. <- 이것은 창에 맞지 ​​않습니다. – prusswan

+2

예, 창에 적용됩니다. 다시 말하지만 autocrlf = false 이외의 작업은하지 마십시오. 나는 창/.net에있는 여러 팀과 함께 지난 4 년 동안이 일을 해왔습니다. 당신은 넘어 지거나 상처를 입히기 위해 다른 것들을 할 수 있습니다. 결국 autocrlf를 false로 설정합니다. –

+3

다른 이유보다 windows/.net에 관한 일화적인 증거가 더 중요하며 http://progit.org/book/ch7-1.html에서 권장하는 내용은 무엇입니까? – prusswan

6

내부적으로 파일을 저장하도록 crlfcore.eol 설정을 지정했기 때문에 문제가 발생했을 수 있습니다. 파일을 추가하면 Git이 내부 형식으로 변경한다는 경고를 표시합니다.

힘내는 lf 줄 끝과 함께 가장 잘 작동하므로 가능한 경우 항상 core.eol = lf과 함께 작업하십시오.

core.autocrlf를 사용하는 경우가 설명해야

, Why should I use core.autocrlf=true in Git?

는 또한 core.safecrlf를 사용할 수 있습니다. 설정에 대한 자세한 내용은 git config --help을 확인하십시오.

+0

당신이 말한 답변은 다음과 같습니다 : "네이티브 eol을 다루어야하는 특정 치료법을 볼 수 없다면, autocrlf를 false로 남겨 두는 것이 좋습니다." –

+0

나는 왜 이것을 위해 downvote를 받았는지 잘 모르겠다. 내가 놓친 게 있니? @AdamDymitruk 또한 사용할 수있는 몇 가지 사례를 제공합니다. 왜 옵션을 사용 하는지를 아는 것이 유용하다고 생각합니다 (사용하지 않으면 왜 설정할 수 있습니까?) – m0tive

24

그래서 core.autocrlf를 false로 설정하면 나에게 너무 많은 의미를 가지지 않습니다. 그래서 다른 초보자의 경우, .git 폴더에있는 config 파일로 이동하여 [core] 제목 아래에

[core] 
    autocrlf = false 

을 추가하십시오.

+11

또는 명령 줄에서 ... git config core.autocrlf false – petercoles

0

형식의 git 자동 검색은 꽤 잘 작동합니다. 따라서 core.autocrlf=true은 Windows에서 좋은 아이디어입니다. 말하는 git config --global core.safecrlf=false

는 자식에게 말한다 : 안녕, 윈도우 라인 엔딩 (CRLF) 내 잘못된 라인 엔딩 (LF 만) 변환하고 그것으로 나를 귀찮게하지 마십시오.

따라서 core.safecrlf을 사용 중지해야합니다.

길잡이 답변 : https://stackoverflow.com/a/15471083/873282

+0

@downvoters : 왜이 ​​대답을 왜 downvote 설명하십시오. 이것은 (i) 다른 사람들이 왜이 답변에 투표가 없는지 이해하고 (ii) 답변을 개선하는 데 도움이됩니다. – koppor

관련 문제