Я собираюсь выбросить это решение там. 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-репо (папке .git), так как они восстанавливаются последней командой git reset --hard
. Просто, поскольку файлы удаляются, вероятно, лучше всего их поддержать вверх.