Я збираюся викинути це рішення туди. Git зробить це. Дивіться цю публікацію про це
Тож теоретично ви могли б зробити це для перетворення цілого дерева
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
Змініть crlf
на, lf
якщо ви хочете піти іншим шляхом. ПРИМІТКА. Ви ще не закінчили, читайте
Введіть, git status
щоб побачити, які файли будуть впливати. Можливо, вам доведеться додати рядки типу
*.jpg binary
*.png binary
*.gif binary
тощо, щоб .gitattributes
уникнути перетворення певних файлів. Ви також можете чітко позначити певні файли як текст
*.md text
*.css text
Потім просто повторіть ці 2 рядки після редагування .gitattributes
git rm --cached -r .
git reset --hard
Потім git status
знову використовуйте, щоб побачити, які файли будуть змінені. Коли ви впевнені, що всі файли, на які ви хочете вплинути, перераховуються до git status
цього часу
git add .
git commit -m "normalize line endings"
тепер ще раз перевірте всі файли
git rm --cached -r .
git reset --hard
Тепер вони повинні мати бажані закінчення рядка
** ПРИМІТКА. Якщо ви вже використовували git, пропустіть перші 3 команди git-команди. Якщо ви не використовували git, тепер можете видалити .gitattributes
файл і .git
папку.
** Резервне копіювання файлів: git rm --cached -r
видаляє їх усі (хоча вони теоретично знаходяться у вашому git repo (папку .git), як саме вони відновлюються останньою командою git reset --hard
. Це просто так, як файли видаляються, ймовірно, найкраще їх створити. вгору