Как решить проблему с окончанием строк Git + phpStorm?
Поставил phpStorm. Все круто, кроме того, что я не могу дальше работать с git как привык. Дома основная ОС — Windows ( потому, что женат ;) ), есть виртуалка с debian и через putty я с ней работаю (запускаю sh, php-cli скрипты и пр).
Проблема в том, что phpStorm при чекауте проекта из git сохраняет некоторые файлы с end line Dos/Window вместо Unix, соответственно bash файлы у меня просто перестали нормально работать. Вроде бы перебрал все настройки phpStorm — ставил в Template Settings и других настройках UTF-8, в msysgit ставил чекаут и коммит as-in (при этом каждый раз сливал проект заново). Ничего не помогло.
Пробовал просто в Explorer скачать проект через TortoiseGit — все круто все в Unix UTF-8.
Подскажите в чем магия и как обуздать phpStorm или msysgit так чтобы он делал чекаут в Unix UTF-8?
В настройках PhpStorm есть опция опция окончания строки, а также её проверки перед коммитом (он может сам привести всё к нужному виду).
Settings->Project Settings->Code Style->General->Line separator (for new files)
Settings->Project Settings->Version Control->Git->Line Separators Conversion
~ — подразумевает домашнею директорию пользователя. Хотя по моему глобавльно менять — это лишнее. Надо на уровне проекта как я уже писал выше, а то мало ли что потребуется в других проектах.
Поставьте плагин Webmaster (в списке плагинов поиском), там есть такая штука.
При установке гита под винду, ему можно задать, как быть с EOL. Выберите второй вариант.
1. В PhpStorm никакой магии при чекауте нет. Он всегда использует те окончания строк, какие изначально были в файле (за исключением опции менять их при коммите, о которой сказал nazarpc).
2. Если вы хотите, чтобы у вас сохранились окончания при чекауте, поставьте core.autocrlf = false или input.
3. Если при чекауте из PhpStorm и из консоли у вас получаются разные результаты, значит, в настройках PhpStorm у вас прописан путь к другой инсталляции Гита (с другими настройками core.autocrlf). Т.к. при Checkout from Git PhpStorm просто вызывает git clone. Проверьте это.