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 crlf
in lf
se vuoi andare dall'altra parte. NOTA: non hai ancora finito, continua a leggere
Digitare git status
per vedere quali file saranno interessati. Potrebbe essere necessario aggiungere righe come
*.jpg binary
*.png binary
*.gif binary
ecc per .gitattributes
evitare 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 status
nuovamente per vedere quali file verranno modificati. Quando sei sicuro che tutti i file che vuoi siano interessati sono elencati da git status
allora 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 .gitattributes
file e la .git
cartella.
** Esegui il backup dei tuoi file: git rm --cached -r
li 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.