2015-01-01 103 views
6

我已经在我的PhpStorm行结尾处设置了LF,但是当我承诺github时,有时会看到一些文件再次以CRLF行结尾(我在Windows上工作)出现。PhpStorm + GIT行结束从LF变为CRLF

它发生在我编辑过的相同文件中,没有人在我的提交/推送到存储库之间编辑它们。这是非常令人烦恼的,我需要经常更改行结尾到同一个文件。它会是什么以及如何解决它?

我还检查选项 “警告如果CRLF行分隔符即将被COMMITED”

编辑

我的本地git的配置是这样的:

[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 

我的全系统的配置是这样的:

[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 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。我看着版本控制台,我看到'git -c core.quotepath = false config core.autocrlf'和例如'git -c core.quotepath = false add --ignore-errors - tests/api/* 警告:LF将被CRLF替换为tests/api/* 该文件将在其工作目录中具有其原始行结束符。'# –

+0

@MarcinNabiałek'git -c core.quotepath = false config core.autocrlf'似乎会强制只是为了设置这个会话autocrlf。这将解释为什么全局配置被忽略。 – VonC

1

git config --global core.autocrlf input 将确保LF仅适用于所有git项目。

相关问题