LF zostanie zastąpiony przez CRLF w git-Co to jest i czy jest ważne? [duplikat]

Możliwy duplikat:
git Zamiana LF na CRLF

Kiedy tworzę nową aplikację rails, widzę w git ostrzeżenie o zamianie LF. Tak. git init git add .

A potem bum! Widzę, że to wyskakuje dla prawie wszystkich plików. Zwykle po prostu kontynuuję i buduję moją aplikację, która znika po wielu zmianach w plikach.

Przykład:

Plik będzie miał oryginalne zakończenia linii w Twoim working directory. Uwaga: LF zostanie zastąpiony przez CRLF w Gemfile.

Plik będzie miał oryginalne zakończenia linii w katalogu roboczym. Uwaga: LF zostanie zastąpiony przez CRLF w Gemfile.zamek.

Plik będzie miał oryginalne zakończenia linii w katalogu roboczym. Uwaga: LF zostanie zastąpiony przez CRLF w README.

Jaka jest różnica między LF A CRLF?

Czy powinienem się tym martwić na dłuższą metę, czy po prostu zignorować i zachować idziesz jak zwykle?

 868
git
Author: Community, 2011-04-29

2 answers

W systemach uniksowych koniec linii jest reprezentowany przez kanał linii (LF). W systemie windows linia jest reprezentowana przez powrót karetki (CR) i kanał linii (LF) w ten sposób (CRLF). kiedy otrzymasz kod z git, który został przesłany z systemu unix, będą mieli tylko LF.

Jeśli chcesz wyłączyć to Ostrzeżenie, wpisz to w wierszu poleceń git

git config core.autocrlf true

Jeśli chcesz podjąć inteligentną decyzję jak git powinien sobie z tym poradzić, przeczytaj dokumentację

Oto snippet

Formatowanie i spacje

Problemy z formatowaniem i białymi spacjami to jedne z bardziej frustrujących i subtelne problemy, które napotyka wielu programistów podczas współpracy, szczególnie cross-platform. Jest bardzo łatwy do łatek lub innych współpracy, aby wprowadzić subtelne zmiany spacji, ponieważ redaktorzy po cichu je wprowadzają, a jeśli Twoje pliki kiedykolwiek dotkną System Windows, ich zakończenia linii mogą zostać zastąpione. Git ma kilka opcje konfiguracji, aby pomóc w tych problemach.

core.autocrlf

Jeśli programujesz w systemie Windows i pracujesz z ludźmi, którzy nie są ( lub odwrotnie), prawdopodobnie napotkasz problemy z zakończeniem linii w niektórych punkt. Dzieje się tak dlatego, że Windows używa zarówno znaku karetki-powrotu i znak linii dla nowych linii w swoich plikach, natomiast Mac i Systemy linuksowe używają tylko znaku linefeed. Jest to subtelne, ale niezwykle irytujący fakt pracy międzyplatformowej; wielu redaktorów na Okna bezgłośnie zastąpić istniejące zakończenia linii w stylu LF CRLF lub Wstaw oba znaki kończące linię, gdy użytkownik naciśnie klawisz enter.

Git może sobie z tym poradzić poprzez automatyczną konwersję zakończeń linii CRLF na LF, gdy dodajesz plik do indeksu i odwrotnie, gdy sprawdza kod na Twój system plików. Możesz włączyć tę funkcjonalność za pomocą rdzeń.ustawienie autocrlf. Jeśli korzystasz z komputera z systemem Windows, ustaw go na true - to zamienia zakończenia LF na CRLF po sprawdzeniu kod:

$ git config --global core.autocrlf true

Jeśli korzystasz z systemu Linux lub Mac, który używa końcówek linii LF, to nie chcę, aby Git automatycznie przekonwertował je podczas pobierania plików; jeśli jednak przypadkowo zostanie wprowadzony Plik z zakończeniami CRLF, wtedy możesz chcieć, aby Git to naprawił. Możesz powiedzieć Gitowi, aby przekonwertował CRLF na LF na commit, ale nie na odwrót przez ustawienie core.autocrlf do input:

$ git config --global core.autocrlf input

Ta konfiguracja powinna pozostawić zakończenia CRLF w kasach systemu Windows, ale jeśli zakończenia w systemach Mac i Linux oraz w repozytorium.

Jeśli jesteś programistą Windows wykonującym projekt Tylko Dla Windows, To można wyłączyć tę funkcjonalność, nagrywając powroty karetki w repozytorium ustawiając wartość konfiguracyjną na false:

$ git config --global core.autocrlf false
 1133
Author: Useless Hasid,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-25 13:22:29

Jeśli chcesz, możesz dezaktywować tę funkcję w konfiguracji git core używając

git config core.autocrlf false

Ale lepiej byłoby po prostu pozbyć się ostrzeżeń za pomocą

git config core.autocrlf true
 317
Author: SG 86,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-14 22:07:35