Atlassian SourceTree : 전 세계적으로 줄 끝을 바꾸는 방법? Atlassian SourceTree 또는

Atlassian SourceTree 또는 현재 git 호스트 (BitBucket)와 함께 모든 저장소의 줄 끝을 변경하는 방법이 있습니까?

나는 그들이 유닉스로 설정되어 있다고 생각하지만 (실수로 이것을했다고 생각합니다) Windows에서만 개발하고 있습니다. 내 IDE에서 파일의 혼합 줄 끝에 대한 경고 메시지와 오류가 계속 발생하여 수정하고 싶습니다.하지만 프로젝트를 클라우드로 푸시 할 때마다 줄 끝을 일괄 변경하더라도 Unix 끝으로 다시 변경됩니다. 그들은 어쨌든 되돌려집니다.



답변

Git 리포지토리의 루트 폴더에 특수 .gitattributes 파일 을 추가하여 리포지토리 당 줄 끝 처리를 구성 할 수 있습니다 . 이 파일이 저장소에 커밋되면 개별 개발자의 core.autocrlf 설정을 재정의합니다.

이 파일에서 줄 끝을 자동 감지하도록 Git을 구성 할 수 있습니다.

참고 :- 모든 그래픽 Git 도구가 .gitattributes 파일을 지원하지는 않습니다 (예 : Eclipse IDE에서 현재 지원하지 않음).

다음은 .gitattributes 파일의 예입니다. 리포지토리의 템플릿으로 사용할 수 있습니다.

# Set the default behavior, in case people don't have core.autocrlf set.
* text=auto

# Explicitly declare text files you want to always be normalized and converted
# to native line endings on checkout.
*.c text
*.h text

# Declare files that will always have CRLF line endings on checkout.
*.sln text eol=crlf

# Denote all files that are truly binary and should not be modified.
*.png binary
*.jpg binary

파일이 공백으로 구분 된 * .c, * .sln, * .png–와 일치하고 텍스트, 텍스트 eol = crlf, 이진으로 설정되어 있음을 알 수 있습니다. 아래에서 가능한 설정을 살펴 보겠습니다.

text = auto
Git은 최선의 방법으로 파일을 처리합니다. 이것이 좋은 기본 옵션입니다.

text eol = crlf
Git은 체크 아웃시 항상 줄 끝을 CRLF로 변환합니다. OSX 또는 Linux에서도 CRLF 종료를 유지해야하는 파일에이 옵션을 사용해야합니다. 예를 들어 다음은 CRLF 줄 끝을 적용하는 Windows 프로젝트입니다.

text eol = lf
Git은 체크 아웃시 항상 줄 끝을 LF로 변환합니다. Windows에서도 LF 엔딩을 유지해야하는 파일에이 옵션을 사용해야합니다. 예를 들어 다음은 LF 줄 끝을 적용하는 프로젝트입니다.

바이너리
Git은 지정된 파일이 텍스트가 아니라는 것을 이해하고 변경하려고 시도해서는 안됩니다. 이진 설정은 -text -diff의 별칭이기도합니다.