2017-03-08 19 views
5

동료들에게 정책을 전파하기 위해 .gitattributes에서 core.autocrlf=input을 시행 할 수 있습니까? 상세.gitattributes를 통해 core.autocrlf = 입력을 시행하십시오.

는 내가 원하는 lf로 변환을 추가하고 체크 아웃as is을 떠날 것입니다.

  1. lf
  2. crlf
  3. native

이상적으로 내가 좋아하는 것 :

문제는 eol 3 개 사용할 수있는 값을 가지고 있기 때문에 texteol도 내가 .gitattributes에서 원하는 것을 할 것입니다 내 .gitattributes에 파일 다음과 같이 : 상세

* text eol=asis

답변

1

내가 원하는 것은 커밋에 거라면 체크 아웃에 그대로두고 변환하는 것입니다.

힘내 기는 전환시 변환되지 않으며, 대신 git add입니다. (더 정확하게는 저장소에 개체를 복사하고 해시 값을 생성하는 작업에 대한 변환을 수행하지만 대부분 목적을 위해 단지 git add입니다.) 현재 "깨끗한"필터를 적용하고 입력 쪽 EOL 작업을 수행합니다 . (대부분의 경우 git checkoutgit reset --hard 인 워크 트리에 저장소로부터 복사 할 때 마찬가지로 출력측 "얼룩"필터와 EOL 동작이 발생한다.)

the gitattributes documentation 따르면, eol=lf 설정 :

... 체크 아웃 할 때 자식이 체크 인시 줄 끝을 LF로 정규화하도록하고 CRLF로 변환하지 못하도록합니다.

따라서 실제로 테스트하지는 않았지만 * eol=lf은 원하는 것입니다. 이것은 질문에 설명 된대로 동작하는 core.eol과 다릅니다. 이는 .gitattributes 설정 일 뿐이며 이름 패턴과 일치하는 파일에 적용됩니다.

+0

음 ... 전에 OP 'eol = lf'에 제안했습니다 ... 기쁨이 없었습니다. http://stackoverflow.com/questions/3206843/how-line-ending-conversions-work-with-git- core-autocrlf-between-different-operat/3209806 # comment72421518_3209806 – VonC

+0

@torek 귀하가 말한 것처럼 _commit_을 _add_으로 수정했습니다. gitattributes 문서 (https://git-scm.com/docs/gitattributes#_effects)에 대해서는 "작업 디렉토리에서 사용되는 줄 끝 스타일을 제어하려면 단일 파일과 코어에 대해 eol 속성을 사용하십시오. 모든 텍스트 파일에 대한 eol 구성 변수. " 이는'core.eol'이'eol'과 실질적으로 동일하다는 것을 시사한다. 또한, 다시 인용하면 "... .vcproj 파일에 CRLF가 있고 .sh 파일에 작업 디렉토리에 LF가 있는지 확인하십시오."* .sh text eol = lf'을 참조하십시오. – laertis

+0

'.gitattributes '에 특정 설정이없는 경우에만'core. *'설정이 적용됩니다. 특히 path-name에'.gitattributes'eol ='항목이 없다면, Git은 (1) 파일이 텍스트인지 결정한 다음 (2)'core.eol' 또는'core.autocrlf '규칙. '* text = auto'' .gitattributes' 항목은 나중에 더 구체적인 규칙이없는 모든 파일에 Git의 추측을 적용합니다. '.gitattributes' 파일이나'.git/info/attributes' 파일이 여러 개있는 경우 모든 우선 순위 규칙을 적용해야합니다. 인덱스와 작업 트리의 .gitattributes가 오버라이드 (override)되는 규칙이 있습니다. – torek