Z Git, kiedy używasz autocrlf = true
flagi, ostrzeżenie jest nadal wyświetlane, gdy końce linii są zmieniane.
Rozumiem, do czego służy ostrzeżenie i jak wyłączyć flagę końca linii, ale jak wyłączyć samo ostrzeżenie?
Z Git, kiedy używasz autocrlf = true
flagi, ostrzeżenie jest nadal wyświetlane, gdy końce linii są zmieniane.
Rozumiem, do czego służy ostrzeżenie i jak wyłączyć flagę końca linii, ale jak wyłączyć samo ostrzeżenie?
Odpowiedzi:
Możesz wyłączyć ostrzeżenie za pomocą
git config --global core.safecrlf false
(Spowoduje to wyłączenie ostrzeżenia, a nie samej funkcji).
Powinieneś użyć core.autocrlf input
i core.eol input
. Lub po prostu nie pozwól autocrlf false
gitowi w ogóle zmieniać końcówek linii i pozbyć się podświetlania crlf w różnicach itp core.whitespace cr-at-eol
. Za pomocą .
Mam nadzieję że to pomoże
Użyłem w ten sposób:
Zapisz swoje bieżące pliki w Git, aby nic nie zostało utracone.
git add . -u git commit -m "Saving files before refreshing line endings"
Usuń każdy plik z indeksu Gita.
git rm --cached -r .
Przepisz indeks Git, aby zebrać wszystkie nowe zakończenia linii.
git reset --hard
Dodaj z powrotem wszystkie zmienione pliki i przygotuj je do zatwierdzenia. To Twoja szansa, aby sprawdzić, które pliki, jeśli w ogóle, pozostały niezmienione.
git add . # It is perfectly safe to see a lot of messages here that read # "warning: CRLF will be replaced by LF in file."
Zatwierdź zmiany w swoim repozytorium.
git commit -m "Normalize all the line endings"
git rm --cached -r . && git reset --hard
wydaje się działać, dzięki
Co zabawne, zastosowałem obie konfiguracje, jak wyjaśniono tutaj, a mój plik .gitconfig zawierał te 2 wiersze:
[core]
autocrlf = false
whitespace = cr-at-eol
Ale dostałem ostrzeżenie. Teraz, żeby spróbować, wykomentowałem obie linie i ostrzeżenie faktycznie zniknęło. Nie mam pojęcia, dlaczego stawiam je na pierwszym miejscu, jednak ...
Ustawienie „core.safecrlf false” działa. Jednak po zmianie wartości na „prawda” Wynik zmienia się z „ostrzeżenia” na „fatalny”, jak pokazano poniżej.
$ git add -A
warning: LF will be replaced by CRLF in .gitignore.
The file will have its original line endings in your working directory
$ git config --global core.safecrlf false
$ git reset
$ git config --global core.safecrlf true
$ git add -A
fatal: LF would be replaced by CRLF in .gitignore
$