[git] 줄 끝 설정을 변경하는 방법

줄 끝 처리 방법에 대한 설정을 변경할 수있는 파일이나 메뉴가 있습니까?

나는 3 가지 옵션이 있다고 읽었습니다.

  1. Windows 스타일 체크 아웃, Unix 스타일 커밋

    Git은 텍스트 파일을 체크 아웃 할 때 LF를 CRLF로 변환합니다. 텍스트 파일을 커밋 할 때 CRLF는 LF로 변환됩니다. 크로스 플랫폼 프로젝트의 경우 Windows에서 권장되는 설정입니다 ( “core.autocrlf”가 “true”로 설정 됨)

  2. 그대로 체크 아웃, 유닉스 스타일 커밋

    텍스트 파일을 체크 아웃 할 때 Git은 변환을 수행하지 않습니다. 텍스트 파일을 커밋 할 때 CRLF는 LF로 변환됩니다. 크로스 플랫폼 프로젝트의 경우 이는 Unix에서 권장되는 설정입니다 ( “core.autocrlf”는 “input”으로 설정 됨).

  3. 있는 그대로 체크 아웃하고있는 그대로 커밋

    Git은 텍스트 파일을 체크 아웃하거나 커밋 할 때 변환을 수행하지 않습니다. 크로스 플랫폼 프로젝트에는이 옵션을 선택하지 않는 것이 좋습니다 ( “core.autocrlf”가 “false”로 설정 됨)



답변

이것을 제어하는 ​​일반적인 방법은 git config

예를 들어

git config --global core.autocrlf true

자세한 내용은 이 링크에서 Pro Git 링크를 아래로 “core.autocrlf”섹션으로 스크롤하십시오.


파일 이 저장된 파일 을 알고 싶다면 다음 명령을 실행하십시오.

git config --global --edit

그리고 git global config 파일이 텍스트 편집기에서 열리면 파일이로드 된 위치를 볼 수 있습니다.


답변

OS에서 사용되는 줄 끝 형식

  • Windows : CR(캐리지 리턴 \r) 및 LF(LineFeed \n) 쌍
  • OSX, Linux : LF(LineFeed \n)

우리는 두 가지 방법으로 각 OS에 대해 자동 수정 줄 끝 형식으로 git을 구성 할 수 있습니다.

  1. 힘내 글로벌 구성
  2. .gitattributes파일 사용

글로벌 구성

Linux / OSX에서

git config --global core.autocrlf input

커밋 CRLFLF때 문제가 해결 됩니다.

Windows에서

git config --global core.autocrlf true

이것은 Windows에서 체크 아웃 할 때 모든 LF것이CRLF

.gitattributes 파일

.gitattributes팀의 모든 사람이 구성을 설정하기를 원하지 않기 때문에 파일 을 보관하는 것이 좋습니다 . 이 파일은 repo의 루트 경로에 보관해야하며 존재하는 경우 git은이를 존중합니다.

* text=auto

이것은 모든 파일을 텍스트 파일로 취급하고 체크 아웃시 종료하고 LF자동으로 커밋시 OS 라인으로 변환합니다 . 명시 적으로 말하고 싶다면

* text eol=crlf
* text eol=lf

첫 번째는 체크 아웃을위한 것이고 두 번째는 커밋을위한 것입니다.

*.jpg binary

.jpg경로에 관계없이 모든 이미지를 이진 파일로 취급하십시오 . 따라서 변환이 필요하지 않습니다.

또는 경로 한정자를 추가 할 수 있습니다.

my_path/**/*.jpg binary


답변

모든 개발자에게 재배포 할 수있는 저장소 설정 솔루션의 경우 .gitattributes 파일 에서 text 속성을 확인 하십시오. 이런 식으로 개발자는 저장소에서 직접 줄 끝을 수동으로 설정할 필요가 없으며 저장소마다 다른 줄 끝 스타일을 가질 수 있으므로 global core.autocrlf는 적어도 제 생각에는 최고는 아닙니다.

예를 들어 지정된 경로에서이 속성을 설정 해제합니다 [ . -text]는 체크인 및 체크 아웃시 git이 줄 끝을 건드리지 않도록합니다. 제 생각에 이것은 대부분의 최신 텍스트 편집기가 두 가지 유형의 줄 끝을 처리 할 수 ​​있기 때문에 이것이 최선의 행동이라고 생각합니다. 또한 개발자가 체크인 할 때 줄 끝 변환을 계속하려는 경우 특정 파일과 일치하도록 경로를 설정하거나 저장소에서 eol 속성 (.gitattributes)을 설정할 수 있습니다.

또한 .gitattributes 파일 및 텍스트 속성을 자세히 설명하는 관련 게시물을 확인하십시오. Git을 사용한 최상의 CRLF (캐리지 리턴, 줄 바꿈) 처리 전략은 무엇입니까?


답변

나를 위해 트릭은 무엇을 명령을 실행했다

git config auto.crlf false

프로젝트 폴더 안에 하나의 프로젝트를 위해 특별히 원했습니다.

해당 명령은 행을 추가하여 경로 {project_name} /. git / config (fyi .git는 숨겨진 폴더 임)에서 파일을 변경했습니다.

[auto]
    crlf = false

파일의 끝에서. 파일을 변경해도 같은 트릭이 있다고 가정합니다.


답변

PC 형식에서 UNIX 형식으로 변경된 파일 형식을 다시 변환하려면

(1) 거북 GIT를 다시 설치하고 “라인 끝 변환”섹션에서 “있는 그대로 체크 아웃-그대로 체크인”옵션을 선택했는지 확인하십시오.

(2) 나머지 구성을 그대로 유지하십시오.

(3) 한번 설치 완료

(4) UNIX 형식으로 변환 된 모든 파일 확장자를 텍스트 파일 (extensions.txt)로 작성하십시오.

ex:*.dsp
   *.dsw

(5) 파일을 복제본에 복사 GITBASH에서 다음 명령을 실행하십시오.

while read -r a;
do
find . -type f -name "$a" -exec dos2unix {} \;
done<extension.txt


답변