2012-09-09 9 views
6

Gemäß this question, ich verstehe, dass core.autocrlf = true in git CRLF zu LF Übersetzungen verursachen wird.Hat ein Git-Repository einen eigenen lokalen Wert für core.autocrlf, der den globalen überschreibt?

jedoch, wenn ich schreibe: git config-core.autocrlf

Ich sehe: falsch

Allerdings, wenn ich die geänderten Dateien Bühne, die bereits im Repo sind, bekomme ich immer noch diese Warnungen:

Warning: CRLF will be replaced by LF in File1.X. 
The file will have its original line endings in your working directory. 

Meine Vermutung ist, dass die Repo-Kopie der Datei bereits auf "autocrlf = true" festgelegt ist.

Fragen: A. Wie frage ich ab, ob eine Datei oder git Repo bereits AutoCrlf erzwingt? B. Wie schalte ich es autocrlf aus?

Antwort

6

Mit Git können Sie die globale Einstellung pro Repository mit einer .gitattributes-Datei überschreiben. Sie legen es im Stammverzeichnis des Repositorys ab und werden zu einer Datei, die als Teil des Repositorys festgeschrieben wird. Ich vermute, das passiert in deinem Fall.

Github hat eine gute Seite zu diesem Thema: https://help.github.com/articles/dealing-with-line-endings

Kurz gesagt, können Sie das Textattribut verwenden, um die Zeilenende für eine bestimmte Dateierweiterung zu setzen. Zum Beispiel würde sln Dateien CRLF zwingen benötigen Sie die folgende Zeile in einer .gitattributes Datei:

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

Right ... so ... was würde ich setzen in '.gitattributes', die das Äquivalent von' Kern wäre .autocrlf = false' in meiner globalen Konfiguration? –

+0

Also wäre das folgende in '.gitattributes' äquivalent zu' core.autocrlf = false'? '* -text' –

+0

Nein. .gitattributes wirkt sich auch auf die Zusammenführungsfunktion aus, wenn Sie die Binärdatei entfernen. – jhclark

Verwandte Themen