Ho intenzione di gettare questa soluzione là fuori. Git lo farà. Vedi questo post a riguardo
Quindi teoricamente potresti farlo per convertire un intero albero
cd root/of/tree
git init .
git add .
git commit -m "initial commit"
echo "* text eol=crlf" > .gitattributes
git rm --cached -r .
git reset --hard
Cambia crlfin lfse vuoi andare dall'altra parte. NOTA: non hai ancora finito, continua a leggere
Digitare git statusper vedere quali file saranno interessati. Potrebbe essere necessario aggiungere righe come
*.jpg binary
*.png binary
*.gif binary
ecc per .gitattributesevitare la conversione di determinati file. Puoi anche contrassegnare esplicitamente alcuni file come testo
*.md text
*.css text
Quindi ripeti queste 2 righe dopo averle modificate .gitattributes
git rm --cached -r .
git reset --hard
Quindi utilizzare git statusnuovamente per vedere quali file verranno modificati. Quando sei sicuro che tutti i file che vuoi siano interessati sono elencati da git statusallora esegui il commit
git add .
git commit -m "normalize line endings"
ora controlla di nuovo tutti i file
git rm --cached -r .
git reset --hard
Ora dovrebbero avere qualunque fine di linea desiderata
** NOTA: se si utilizzava già git, saltare i primi 3 comandi comandi git. Se non stavi usando git ora puoi eliminare il .gitattributesfile e la .gitcartella.
** Esegui il backup dei tuoi file: git rm --cached -rli elimina tutti (anche se teoricamente sono nel tuo repository git (la cartella .git) che è il modo in cui vengono ripristinati dall'ultimo comando git reset --hard. È solo dal momento che i file vengono eliminati, probabilmente è meglio eseguirne il backup su.