PhpStorm + GIT 行尾从 LF 更改为 CRLF

PhpStorm + GIT line endings changing from LF to CRLF

我已将我的 PhpStorm 行尾设置为 LF 但是当我提交到 github 时,有时我会再次看到一些文件以 CRLF 行尾出现(我在 Windows 上工作) .

它发生在我编辑过的相同文件上,但在我 commits/pushes 到存储库之间没有人编辑过它们。这很烦人,我需要经常将行尾更改为同一个文件。它可能是什么以及如何解决它?

我也勾选了选项"Warn if CRLF line separators are about to be 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

还有我在 PhpStorm 中的 GIT 设置:

您可以查看此 Git 设置是否有帮助:

git config --global core.autocrlf false

我通常推荐keeping core.autocrlf to false (there are only a few reason to set it to true)。

还要检查您是否有任何 .gitattributes 文件,其中包含 core.eol 指令。

git config --global core.autocrlf input 将确保仅对所有 git 个项目使用 LF。

经过测试,显然不是 PhpStorm 问题,而是 GIT 配置问题。

好像在Windows上需要设置:

git config --global core.autocrlf input

还有

git config --global core.eol lf

让它发挥作用。