Git ребаз, применяя dos2unix на каждом шаге
У меня есть серия коммитов в файле, который, как я теперь понимаю, был создан с неправильными окончаниями строк. Я хочу отменить коммиты и применить dos2unix
Команда на каждом этапе. Я не вижу простого способа сделать это, так как после каждого шага git регистрирует полный конфликт с файлом. Есть идеи?
2 ответа
Использование filter-branch
,
git filter-branch --tree-filter 'dos2unix filename' master
(Предполагая, что коммиты, которые вы хотите изменить, включены master
, Вы также можете использовать более конкретный список имен коммитов вместо применения фильтра ко всей ветви.)
Какая среда использовалась для изменения файла с неправильными окончаниями строк? если это окна, убедитесь, что ваше рабочее пространство использует кодировку UTF-8.
Вы можете управлять этим через git config (см. Ссылку для опции):
git config core.autocrlf true
при значении true конвертирует LF-окончания в CRLF при проверке кода (при работе в Windows)
Дополнительная информация: http://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration