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