Как решить проблему с окончанием строк 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?
  • Вопрос задан
  • 26991 просмотр
Решения вопроса 1
Комментировать
Пригласить эксперта
Ответы на вопрос 6
nazarpc
@nazarpc
Open Source enthusiast
В настройках PhpStorm есть опция опция окончания строки, а также её проверки перед коммитом (он может сам привести всё к нужному виду).
Settings->Project Settings->Code Style->General->Line separator (for new files)
Settings->Project Settings->Version Control->Git->Line Separators Conversion
Ответ написан
miraage
@miraage
Старый прогер
~/.gitconfig

[user]
	name = name
	email = your@email.com
[gui]
[core]
	autocrlf = false
	safecrlf = true
Ответ написан
EugeneOZ
@EugeneOZ
Поставьте плагин Webmaster (в списке плагинов поиском), там есть такая штука.
При установке гита под винду, ему можно задать, как быть с EOL. Выберите второй вариант.
Ответ написан
Комментировать
@edelweard
Кстати, если здесь вам не помогут, то можете смело обращаться в support@jetbrains.com: они очень хорошо отвечают.
Ответ написан
Комментировать
@edelweard
1. В PhpStorm никакой магии при чекауте нет. Он всегда использует те окончания строк, какие изначально были в файле (за исключением опции менять их при коммите, о которой сказал nazarpc).

2. Если вы хотите, чтобы у вас сохранились окончания при чекауте, поставьте core.autocrlf = false или input.

3. Если при чекауте из PhpStorm и из консоли у вас получаются разные результаты, значит, в настройках PhpStorm у вас прописан путь к другой инсталляции Гита (с другими настройками core.autocrlf). Т.к. при Checkout from Git PhpStorm просто вызывает git clone. Проверьте это.
Ответ написан
Комментировать
Quber
@Quber
PHP Team lead
bash файлы одинаково нормально работают как на Windows так и на Linux
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы