Con Git, quando si utilizza il autocrlf = true
flag, viene comunque emesso un avviso quando si modificano i finali di linea.
Comprendo a cosa serve l'avviso e come disattivare il flag di fine riga, ma come posso disattivare l'avviso stesso?
Con Git, quando si utilizza il autocrlf = true
flag, viene comunque emesso un avviso quando si modificano i finali di linea.
Comprendo a cosa serve l'avviso e come disattivare il flag di fine riga, ma come posso disattivare l'avviso stesso?
Risposte:
È possibile disattivare l'avviso con
git config --global core.safecrlf false
(Questo disattiverà solo l'avvertimento, non la funzione stessa.)
Dovresti usare core.autocrlf input
e core.eol input
. O semplicemente non lasciare che git cambi le estremità della linea con autocrlf false
e sbarazzati dell'evidenziazione di crlfs in diff, ecc core.whitespace cr-at-eol
. Con .
Spero che questo ti aiuti
Ho usato in questo modo:
Salva i tuoi file correnti in Git, in modo da non perdere nulla del tuo lavoro.
git add . -u git commit -m "Saving files before refreshing line endings"
Rimuovi tutti i file dall'indice di Git.
git rm --cached -r .
Riscrivi l'indice Git per raccogliere tutte le nuove terminazioni di riga.
git reset --hard
Aggiungi di nuovo tutti i file modificati e preparali per un commit. Questa è la tua occasione per verificare quali file sono rimasti invariati.
git add . # It is perfectly safe to see a lot of messages here that read # "warning: CRLF will be replaced by LF in file."
Apporta le modifiche al tuo repository.
git commit -m "Normalize all the line endings"
git rm --cached -r . && git reset --hard
sembra fare il trucco, grazie
Stranamente, avevo applicato entrambe le configurazioni come spiegato qui, e il mio file .gitconfig conteneva queste 2 righe:
[core]
autocrlf = false
whitespace = cr-at-eol
Eppure ho ricevuto l'avvertimento. Ora solo per provare ho commentato entrambe le righe e l'avvertimento è effettivamente scomparso. Non ho idea del perché li abbia messi al primo posto comunque ...
L'impostazione "core.safecrlf false" funziona. Tuttavia, dopo aver modificato il valore su "true", l'output passa da "warning" a "fatal" come mostrato di seguito.
$ 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
$