Sono nuovo di git, e ho letto molto sui finali di linea e su come li tratta. A proposito, sono su Windows. Ho creato il file a .gitattributes
e ho impostato ad esempio * .txt in testo. Quando ho commesso un file .txt, ottengo l'avvertimento:git: Come faccio a sbarazzarmi di "avviso: CRLF sarà sostituito da LF" senza disabilitare safecrlf?
avvertimento: CRLF sarà sostituito da LF in whatever.txt
ma so che. Non ho bisogno di questo avvertimento. La sostituzione della linea nei file di testo è ciò che voglio.
Ora, impostando safecrlf
false rende l'avviso scomparire, ma il manuale per safecrlf
legge:
Se è vero, fa il check git se la conversione CRLF è reversibile quando end-of-line conversione è attiva . Git verificherà se il comando modifica un file nell'albero di lavoro direttamente o o indirettamente. Ad esempio, l'invio di un file seguito da il check-out dello stesso file dovrebbe produrre il file originale nell'albero di lavoro. Se questo non è il caso per l'attuale impostazione di core.autocrlf, git rifiuterà il file.
Da questo, safecrlf
sembra una buona idea. Tuttavia, non capisco perché l'impostazione di safecrlf
su true mi fornisca avvisi sui miei file di testo; mi sembra che questi sono problemi diversi - l'avviso sui file di testo e il controllo se reversibile. Infatti, git non rifiuta il mio file .
È possibile eliminare gli avvisi per i file di testo e impostare ancora safecrlf
? O sto fraintendendo qualcosa?
Perché il file non è stato convertito già in un file di stile di Windows? Sento che questo avviso è buono in quanto git ti sta dicendo che ha modificato il file in qualche modo. La vera soluzione non è avere il file in uno stato in cui git deve modificarlo. Se sei stato clonato da un repository centrale, potresti fare qualcosa di pericoloso per gli altri. – cforbish
cforbish Penso che fosse un file in stile Windows. Ha CRLF al suo interno e si impegna invece con i finali LF. Ma lo sapevo. – oskarkv
oskarkv mi dispiace per l'equivoco. Ti capita di usare vim/gvim? In tal caso, puoi rendere il file un file di stile Linux con ': set ff = unix', per evitare l'avvertimento. Questo effettivamente modifica il file in modo da dover ': w'. – cforbish