2015-01-01 4 views
6

Я установил в конце строки PhpStorm LF, но когда я передаю github, иногда я вижу, что некоторые из файлов снова появляются с завершением строки CRLF (я работаю в Windows).Окончания строк PhpStorm + GIT, изменяющиеся от LF до CRLF

Это происходит с теми же файлами, которые я редактировал, и никто не редактировал их между моими коммитами/нажатиями на репозиторий. Это очень раздражает, и мне нужно часто менять концы строк в один и тот же файл. Что это может быть и как это исправить?

Я также проверил опцию «Предупреждать, если CRLF линии сепараторов собираются быть поручены»

EDIT

Мой местный мерзавец конфигурации заключается в следующем:

[core] 
    repositoryformatversion = 0 
    filemode = false 
    bare = false 
    logallrefupdates = true 
    symlinks = false 
    ignorecase = true 
    hideDotFiles = dotGitOnly 
[remote "origin"] 
    url = https://github.com/* 
    fetch = +refs/heads/*:refs/remotes/origin/* 
[branch "develop"] 
    remote = origin 
    merge = refs/heads/develop 

Моя глобальная конфигурация является это:

[user] 
    name = * 
    email = * 
[core] 
    autocrlf = false 

My общесистемных конфигурации заключается в следующем:

[core] 
    symlinks = false 
    autocrlf = false 
[color] 
    diff = auto 
    status = auto 
    branch = auto 
    interactive = true 
[pack] 
    packSizeLimit = 2g 
[help] 
    format = html 
[http] 
    sslCAinfo = /bin/curl-ca-bundle.crt 
[sendemail] 
    smtpserver = /bin/msmtp.exe 

[diff "astextplain"] 
    textconv = astextplain 
[rebase] 
    autosquash = true 

И мой GIT настройки в PhpStorm:

My Git Settings in PhpStorm

ответ

4

После тестов это явно не проблема PhpStorm, а проблема с настройкой GIT.

кажется, что на Windows, необходимо установить:

git config --global core.autocrlf input 

но

git config --global core.eol lf 

, чтобы заставить его работать.

8

Вы можете проверить, если эта настройка Git может помочь:

git config --global core.autocrlf false 

Я обычно рекомендую keeping core.autocrlf to false (есть only a few reason to set it to true).

Проверьте также, есть ли у вас .gitattributes файлов с директивой core.eol.

+0

Я использовал 'git config --global --list', и он действительно был установлен в true, поэтому я изменил его на false, как вы посоветовали. В моем файле '.gitattributes' у меня есть только' * text = auto' - ничего больше. Я попытаюсь посмотреть, что проблема по-прежнему сохраняется после этого изменения. –

+0

Кажется, что это вообще не помогло. Я все еще получаю CRLF в своих файлах. Я посмотрел на консоль версии controle, и я вижу там 'git -c core.quotepath = false config core.autocrlf'and, например,' git -c core.quotepath = false add --ignore-errors - tests/api/* предупреждение: LF будет заменен CRLF в тестах/api/* Файл будет иметь свои исходные окончания строки в вашем рабочем каталоге. ' –

+0

@ MarcinNabiałek' git -c core.quotepath = false config core.autocrlf', казалось бы, только для этого сеанса autocrlf. Это объясняет, почему глобальная конфигурация игнорируется. – VonC

1

git config --global core.autocrlf input будет обеспечивать LF только для всех проектов git.

Смежные вопросы