Mam repozytorium Git, do którego można uzyskać dostęp zarówno z systemu Windows, jak i OS X, i wiem, że zawiera już niektóre pliki z zakończeniami linii CRLF. O ile mi wiadomo, istnieją dwa sposoby radzenia sobie z tym:
Ustaw
core.autocrlf
sięfalse
wszędzie,Postępuj zgodnie z instrukcjami tutaj (powtórzonymi na stronach pomocy GitHub), aby przekonwertować repozytorium tak, aby zawierało tylko zakończenia linii LF, a następnie ustawić
core.autocrlf
jetrue
w systemie Windows iinput
OS X. Problem z tym polega na tym, że jeśli mam jakieś pliki binarne w repozytorium że:- nie są poprawnie oznaczone jako binarne w gitattributes, i
- zawiera zarówno CRLF, jak i LF,
będą skorumpowani. Możliwe, że moje repozytorium zawiera takie pliki.
Dlaczego więc nie miałbym po prostu wyłączyć końcowej konwersji Gita? W sieci jest wiele niejasnych ostrzeżeń o core.autocrlf
wyłączeniu powodującym problemy, ale bardzo niewiele konkretnych ; jedyne, co do tej pory znalazłem, to to, że kdiff3 nie może obsłużyć zakończeń CRLF (nie jest to dla mnie problemem) i że niektóre edytory tekstu mają problemy z zakończeniem linii (również dla mnie nie stanowi problemu).
Repozytorium jest wewnętrzne dla mojej firmy, więc nie muszę się martwić udostępnianiem go osobom o różnych ustawieniach autocrlf lub wymaganiach dotyczących zakończenia linii.
Czy są jakieś inne problemy z pozostawieniem zakończenia linii takim, jakiego nie jestem świadomy?
autocrlf
false. Szukam powodów, aby to zrobić.
autocrlf = input
: wydaje się, że jest to idealna rozdzielczość między dwiema skrajnościami: utrzymujesz swoje repozytorium w czystości od bzdur CRLF, a lokalnie programiści Windows mogą używać wszystkiego, co chcą, bez konieczności przerywania automatycznie plików lokalnych przez magię. (Mogą chcieć LF lokalnie z różnych powodów, więc true
moim zdaniem jest to złe.) Nie widzę żadnych wad używania autocrlf = input
.
autocrlf
fałszywego.