Windows에서 Git에 CR+LF 대신 LF를 사용하도록 강제하는 방법은 무엇입니까?
하여 Git이 할 수 하고 .LF
CR+LF
.
두 가지 구성 옵션을 확인했지만 올바른 설정 조합을 찾을 수 없었습니다.
하여 「」로 하고 .LF
""를 유지합니다.LF
파일 안에 있습니다.
: ★★★★★★★★★★★★★★★★★★★★★★★autocrlf = input
이치노
요.LF
.
잘 에서 이미 입니다.저장소에서 이미LF
하지만 Git for Windows로 체크아웃된 파일은CR+LF
에 Git을 .LF
: UNIX 행의 엔딩을 강제합니다.
$ git config --list | grep crlf
core.autocrlf=input
로 LF 하려면 , 의 LF 엔딩을 설정합니다.core.autocrlf
로로 합니다.false
:
git config --global core.autocrlf false
를 하고 있는 는, msysgit 는 msysgit 로 되어 있기 에, 가 있습니다. msysgit (메시지)true
시스템 설정으로 합니다.
이제 git은 정규화를 종료하는 어떤 행도 수행하지 않습니다.체크인 하는 파일을 정규화하려면 , 다음의 순서에 따릅니다. ★★text=auto
안에서.gitattributes
'이것'은 다음과 같습니다.
* text=auto
★★★★★★★★★★★★★★★★★★」core.eol
로로 합니다.lf
:
git config --global core.eol lf
이제 를 실행하여 단일 저장소를 (작업 디렉토리의!) crlf로 전환할 수도 있습니다.
git config core.eol crlf
설정이 완료되면 git에서 repo 내의 모든 파일을 정규화할 수 있습니다.이를 수행하려면 repo 루트로 이동하여 다음 명령을 수행합니다.
git rm --cached -rf .
git diff --cached --name-only -z | xargs -n 50 -0 git add -f
작업 디렉토리내의 파일도 git로 정규화하려면 , 다음의 커맨드를 실행합니다.
git ls-files -z | xargs -0 rm
git checkout .
나는 이 질문에 꽤 자주 답하지만, 다른 대답들은 모두 나에게 맞지 않는다.
그렇긴 하지만, 나에게 맞는 답은 다른 것들과 뒤섞여 있다.
내가 찾은 것은 다음과 같다.
git config --global core.eol lf
git config --global core.autocrlf input
된 후 의 경우, repo에 됩니다(기트 저장소).LF
)\n
를 참조해 주세요.
의 ★★★★CRLF
로 변환됩니다.LF
★★★★★★★★★★★★★★★★★★★★
이미 체크아웃한 기존 repo(repo의 행 끝은 올바르고 작업 복사본은 아님)의 경우 다음 명령을 실행하여 수정할 수 있습니다.
git rm -rf --cached .
git reset --hard HEAD
「 「 」 )이 삭제됩니다.rm
-r
가 표시되지 않음。-f
한 모든 )--cached
「」( )로부터를 참조해 주세요..
reset
그런 다음 모든 파일을 실제 행이 끝난 상태로 되돌립니다(repo의 내용을 참조).
리포에서 파일의 행 끝을 수정해야 한다면 IntelliJ나 Sublime Text와 같이 일괄적으로 할 수 있는 에디터를 선택하는 것을 추천합니다만, 좋은 에디터가 이것을 서포트할 것입니다.
OP는 그의 질문에 다음과 같이 덧붙였다.
은 msysgit을 사용하고 .
CR+LF
을 msysgit으로 강제로 .LF
입니다..gitattributes
삭제:
# 2010
*.txt -crlf
# 2020
*.txt text eol=lf
(종료 전환에 관한 손자의 코멘트에 기재된 바와 같이)CRLF
eol
.
그리고 나는 항상 추천해왔다. git config --global core.autocrlf false
모든 변환을 비활성화합니다(모든 버전 파일에 적용됩니다).
크로스 플랫폼 git 구성에 대한 베스트 프랙티스를 참조하십시오.
Git 2.16(2018년 1분기)부터git add --renormalize .
것을 응용하다.gitattributes
즉시 설정을 실시합니다.
그러나 더 강력한 두 번째 단계는 gitattribute 필터 드라이버와 스머지 스텝을 추가하는 것입니다.
트리를 는 에서 만 실행할 수 있습니다..gitattributes
「」를 합니다.LF eol
및 적용할 다른 형식 지정 옵션을 지정합니다.
아까', '아까', '아까',clear
스크립트는 아무것도 하지 않습니다.커밋 후 필요한 포맷을 적용하여 파일을 변환합니다.
맥락
네가 만약
- 텍스트 파일에 대해 모든 사용자에게 LF 행 엔딩을 강제로 지정하려고 합니다.
- 모든 사용자가 git 설정을 변경하는지 확인할 수 없습니다.
git 2.10부터 가능합니다.2.10 이후가 필요합니다.이것은 2.10이 eol=lf와 함께 text=auto의 동작을 수정했기 때문입니다.출처.
솔루션
를 넣다.gitattributes
에는 다음과 같은되어 있습니다.
* text=auto eol=lf
커밋해.
옵션 조정
또한 저장소의 루트에 를 추가하여 최신 도구에서 원하는 줄 끝의 새 파일을 만들 수도 있습니다.
# EditorConfig is awesome: http://EditorConfig.org
# top-most EditorConfig file
root = true
# Unix-style newlines with a newline ending every file
[*]
end_of_line = lf
insert_final_newline = true
core.autocrlf=input
이 할 도 있습니다.git update-index --refresh
"/"git reset --hard
변경사항이 적용되도록 하기 위해서입니다.
★★★★★★★★★★★★★★★★ core.autocrlf
로 input
시 가 있으면 LF를), 식으로든 되어도 newline-conversion ( repo;newline-conversion lineooo , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 어떤 식으로든 작업 복사본에 CRLF를 삽입해도 repo에 들어가지 않습니다.
이 문제의 해결 방법은 https://help.github.com/en/github/using-git/configuring-git-to-handle-line-endings 에서 찾을 수 있습니다.
Windows에서 이 문제를 해결하는 방법에 대한 간단한 설명:
회선 말미에 대한 글로벌 설정 git 구성 코어.autocrlf 명령어는 Git이 행 끝을 처리하는 방법을 변경하기 위해 사용됩니다.그것은 하나의 논거가 필요하다.
Windows 에서는, 설정에 true 를 건네기만 하면 됩니다.예를 들어 다음과 같습니다.C:>git config --글로벌코어autocrf true(오토크렐프 참
행운을 빌어요, 도움이 됐으면 좋겠어요.
언급URL : https://stackoverflow.com/questions/2517190/how-do-i-force-git-to-use-lf-instead-of-crlf-under-windows
'source' 카테고리의 다른 글
Azure CosmosDB에서 LIKE 쿼리를 작성하는 방법 (0) | 2023.04.22 |
---|---|
다른 사용자로 PowerShell 실행 및 스크립트 실행 (0) | 2023.04.22 |
Swift에서 pull을 사용하여 새로 고치는 방법 (0) | 2023.04.22 |
프로젝트 커밋 기록에서 삭제된 파일을 찾으려면 어떻게 해야 합니까? (0) | 2023.04.22 |
제공된 데이터가 Office 2007+ XML에 있는 것으로 보이는 Java POI (0) | 2023.04.22 |